2012-09-20 34 views
3

我想过滤的ExpandableListView数据在Android中使用EditText,验证adapter应该实现Filtering但不知道如何做到这一点的实现由于在过滤器上的数据缺乏知识。我的适配器的结构是:ExpandableListView的Android +过滤的EditText

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; 
    } 
} 

回答

相关问题