Android 具有多个textview的listview过滤器

Android 具有多个textview的listview过滤器,android,android-layout,Android,Android Layout,我有一个包含3个文本视图的列表视图。我想构建一个过滤器来过滤第一个文本视图。 但是我构建的过滤器现在正在过滤ListView中的所有项目。 有没有办法只过滤特定的文本视图 ... filterText = (EditText) findViewById(R.building_list.search_box); filterText.addTextChangedListener(filterTextWatcher); ListAdapter adap

我有一个包含3个文本视图的列表视图。我想构建一个过滤器来过滤第一个文本视图。 但是我构建的过滤器现在正在过滤ListView中的所有项目。 有没有办法只过滤特定的文本视图

        ...
    filterText = (EditText) findViewById(R.building_list.search_box);
    filterText.addTextChangedListener(filterTextWatcher);
        ListAdapter adapter = new SimpleAdapter(this, menuItems,
            R.layout.list_item,
            new String[] {KEY_NAME, KEY_DESC, KEY_DATE, KEY_LINK }, new int[] {
             R.id.name, R.id.desciption, R.id.date, R.id.link});
    Filter filterx = ((Filterable) adapter).getFilter();
    setListAdapter(adapter);
        ...

将三个
TextView
的内容放在一个名为
Data
的类中:

public class Data {
    public final String text1;
    public final String text2;
    public final String text3;

    public Data(String t1, String t2, String t3){
      this.text1 = t1;
      this.text2 = t2;
      this.text3 = t3;
    }

    @Override
    public final String toString(){
      return text1;
    }
}

现在在适配器中使用
数据
对象的集合。适配器的默认
Filterable
实现使用其对象的
toString()
进行过滤,在本例中为
text1
。因此,适配器将基于
text1

进行过滤。默认
simpledapter
的默认
过滤器将使用行的
映射的所有列进行过滤。您需要实现自己的过滤器,该过滤器只考虑第一个代码>文本>文本/代码>的数据。或者类似问题的手动方法。