我有一个扩展 BaseExpandableListAdapter 的类:
public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
View convertView, ViewGroup parent) {
Filter filter = (Filter) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.exp_list_child, null);
}
TextView tv = (TextView) convertView.findViewById(R.id.child_tv);
tv.setText(filter.toString());
tv = (TextView) convertView.findViewById(R.id.child_sub_tv);
tv.setText(filter.getType());
if(!filter.getType().endsWith("ExportPin"))
// I dont want to return antyhing
return convertView;
}
正如您所看到的,我创建了一个TextView
但是如果过滤器的类型不以“ExportPin
”结尾,我不想返回它(请参阅最后的语句) )。
我无法返回null
,我不想返回一个空列表项。
在我的课堂上,我还有getChildrenCount()
,getGroupCount()
...
有什么想法吗?
答案 0 :(得分:1)
也许你应该在将数据传递给适配器之前(或在适配器构造函数中)过滤数据,以便适配器只使用已过滤的已经数据。
答案 1 :(得分:1)
根据official documentation,Adapter
不应负责过滤数据:
Adapter对象充当AdapterView与该视图的基础数据之间的桥梁。适配器提供对数据项的访问。适配器还负责为数据集中的每个项目创建视图。
您必须在将数据放入Cursor
之前对其进行过滤,然后Adapter
将呈现所需的视图以显示ListView