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 に答える