【问题标题】:ExpandableListView Android + filter EditTextExpandableListView Android + 过滤EditText
【发布时间】:2012-09-13 09:40:04
【问题描述】:

我想在android中使用EditText过滤ExpandableListView中的数据,验证adapter应该实现Filtering但不知道如何完成这个实现对过滤数据缺乏了解。我的适配器的结构是:

    public class ExpandableListAdapter extends
        BaseExpandableListAdapter /*implements Filterable*/ {

    private final Context myContext;

    private String[] arrayTopics;
    private String[][] arraySubTopics;

    public PrimeirosSOSExpandableListAdapter(Context context) {
        this.myContext = context;
    }

    public ExpandableListAdapter(Context context,
            String[] arrayTopics, String[][] arraySubTopics) {
        this.myContext = context;
        this.arrayTopics = arrayTopics;
        this.arraySubTopics = arraySubTopics;

    }

    public Object getChild(int groupPosition, int childPosition) {
        return null;
    }

    public long getChildId(int groupPosition, int childPosition) {
        return 0;
    }

    public View getChildView(int groupPosition, int childPosition,
            boolean isLastChild, View convertView, ViewGroup parent) {

        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) myContext
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.child_layout,
                    null);
        }

        TextView tv = (TextView) convertView.findViewById(R.id.tvChild);
        tv.setText(arraySubTopics[groupPosition][childPosition]);

        return convertView;
    }

    public int getChildrenCount(int groupPosition) {
        return arraySubTopics[groupPosition].length;
    }

    public Object getGroup(int groupPosition) {
        return null;
    }

    public int getGroupCount() {
        return arrayTopics.length;
    }

    public long getGroupId(int groupPosition) {
        return 0;
    }

    public View getGroupView(int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {

        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) myContext
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.group_layout,
                    null);
        }

        TextView tv = (TextView) convertView.findViewById(R.id.tvGroup);
        tv.setText(arrayTopics[groupPosition]);

        return convertView;
    }

    public boolean hasStableIds() {
        return false;
    }

    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }
}

【问题讨论】:

    标签: android filter android-edittext expandablelistview


    【解决方案1】:

    我自己对 Android 的这一部分不太了解,因为我是新手,但我确实在我的研究中看到了一些关于 CursorTreeAdapter 的其他问题。它内置了一些用于过滤的方法。这是有关它的Android API信息。 CursorTreeAdapter 可以与 ExpandableListView 一起使用。

    http://developer.android.com/reference/android/widget/CursorTreeAdapter.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 2012-04-22
      • 2012-02-02
      • 2015-02-03
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      相关资源
      最近更新 更多