我有一个用于显示详细数据的 ListView 。我将我的数据存储在字符串的 ArrayList 中。然而,有些字段可能没有任何数据要显示,但我需要保持数组长度相同以匹配静态标题数组。我可以在此处的自定义基本适配器中的 getView 方法中捕获空数据:
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.drug_detail_cell, parent, false);
}
// check array bounds
if (position < getCount()) {
// check for null items
String item = items.get(position);
if (item != null) {
// get the text views
TextView title = (TextView) convertView.findViewById(R.id.item_title);
TextView sub = (TextView) convertView.findViewById(R.id.item_subtitle);
title.setText(titles.get(position));
sub.setText(item.toString());
} else {
// delete row
}
}
return convertView;
}
我的问题是虽然数据没有显示,但我的 ListView 中仍然有一个空行。我的问题是如何删除该行?任何帮助将不胜感激。提前致谢。
最佳答案
从 CustomListAdapter 中删除一行:
在调用 notifyDatasetChanged
之后,从指定索引的 ArrayAdapter 中删除项目。它将更新您的 ListView 。
在 CustomAdapterClass
中:
@Override
public void remove(String object) {
super.remove(object);
// your other code
}
在 ListActivity
类中:
CustomAdapterClass adap = new CustomAdapterClass();
adap.remove("hello world");
adap.notifyDatasetChanged(); // this will update your listView
我的代码是一个基本示例
,用于描述如何实现您的目标。
关于Android删除自定义数组适配器中的 ListView 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291192/