首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android ListView 不顯示數據排查:getCount/getView 返回值檢查

     編輯:程式設計綜合問答

常見原因

  1. getCount() 返回 0 → 列表為空;
  2. getView() 返回 null 或未正確綁定數據;
  3. ViewHolder 模式使用錯誤(未復用 convertView、findViewById 重複)。

排查步驟

@Override
public int getCount() {
    return dataList == null ? 0 : dataList.size(); // 確保非 0
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
        holder = new ViewHolder(convertView);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    // 關鍵:綁定數據
    holder.text1.setText(dataList.get(position).getText1());
    holder.text2.setText(dataList.get(position).getText2());
    return convertView; // 不能返回 null
}

ViewHolder 正確模式

static class ViewHolder {
    TextView text1, text2;
    ViewHolder(View v) {
        text1 = v.findViewById(R.id.text1);
        text2 = v.findViewById(R.id.text2);
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved