0

私はこのコードを手に入れました:

public void cap_search(){
        EditText search = (EditText) findViewById(R.id.search);
        String str_search = null;
        adapter = new ItemListAdapter(this, data);
        setListAdapter(adapter);

        str_search = search.getText().toString();
        for (int i = data.size()-1; i >= 0; i--){
            if (!data.get(i).getCaption().contains(str_search)){
                 data.remove(i);
            }
         }
    }

このコードと、それが私のコードで何をするかを説明します。

キャップのリストが表示され、所有しているすべてのキャップを確認できます。しかし、キャップがたくさんあるので、検索機能を組み込みます。したがって、「A」と入力すると、リストには「A」を含む大文字のみが表示されます。これがすべてうまくいくまで、今問題です。「A」と入力した後、それを含まないすべてのアイテムを削除します。しかし、ユーザーが「A」を削除して「B」を入力すると、リスト全体(「A」で始まらない削除済みのものも)をチェックする必要がありますが、それらを削除したため、チェックしません。

アイテムを削除する代わりに非表示にすることは可能ですか? または、この問題を解決する別の方法はありますか?

明確であることを願っています。そうでない場合は、別の方法で説明しようと思います。

すでにありがとう、Bigflow

編集1:

多くの答えを試しましたが、正しく機能させることができません。誰かがもっとアイデアを持っていますか?
TextWatcher はかなりクールに思えますが、私には難しすぎます。これは私が実装しようとする 2 番目のプロジェクトですが、今回も機能しません。
私もSQLを使用したことはありません。

それで、他の誰かが他の答えを得ましたか?または、textwatcher が得意な方がいらっしゃいましたら、作成/作成を手伝っていただけないでしょうか。ほとんどの場合、インターネット上のテキストウォッチャーの例は複雑すぎます。とても感謝しております。

編集2:

私はまだこのオプション/機能を考え出していますが、での使用はadapter.getfilter();どうですか?

4

3 に答える 3

1

2つのリストを使用してみてください。1つはすべての結果を含み、もう1つは検索結果を含みます。常に2番目のリストを表示します。リスト全体を表示する場合は、2番目のリストを最初のリストにポイントするだけです。何かのようなもの:

private List<Item> displayData = new ArrayList<Item>();

public void cap_search(){
        EditText search = (EditText) findViewById(R.id.search);
        String str_search = null;

        str_search = search.getText().toString();
        displayData.clear();
        if (str_search == null || str_search.equals("")) {
            displayData.addAll(data);
        } else {
            for (int i = data.size()-1; i >= 0; i--){
                if (data.get(i).getCaption().contains(str_search)){
                    displayData.add(data.get(i));
                }
            }
        }
        adapter = new ItemListAdapter(this, displayData);
        setListAdapter(adapter);
}
于 2012-05-30T08:10:18.553 に答える
0

これがあなたのための解決策であるならば、私は「更新ボタン」でこれを解決しました。空の検索パターンで、リスト全体を再度ロードします。

于 2012-05-30T08:10:40.210 に答える
0

リストを使用するたびに、必要な条件を確立するようにしてください。

于 2012-05-30T08:27:40.943 に答える