0

我有一个带有 3 个 TextView 的 ListView。我想构建一个过滤器来过滤第一个 TextView。但是我构建的过滤器现在正在过滤 ListView 中的所有项目。有没有办法只过滤特定的TextView?

        ...
    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);
        ...
4

1 回答 1

0

将 3 的内容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;
    }
}

现在Data在您的适配器中使用一组对象。适配器的默认Filterable实现使用toString()其对象进行过滤,在本例中为text1. 因此,适配器将基于text1.

于 2012-11-21T08:11:30.083 回答