BaseExpandableListAdapter返回特定的Child,而不是全部

时间:2013-06-04 07:32:45

标签: android view return-value expandablelistadapter

我有一个扩展 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() ...

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

也许你应该在将数据传递给适配器之前(或在适配器构造函数中)过滤数据,以便适配器只使用已过滤的已经数据。

答案 1 :(得分:1)

根据official documentationAdapter不应负责过滤数据:

  

Adapter对象充当AdapterView与该视图的基础数据之间的桥梁。适配器提供对数据项的访问。适配器还负责为数据集中的每个项目创建视图。

您必须在将数据放入Cursor之前对其进行过滤,然后Adapter将呈现所需的视图以显示ListView

中的数据