Android:リストビュー検索のパフォーマンスを向上させる方法

私のアプリケーションは、SQLite DBからの値を表示するリストビューを持っています。リストビューの値を検索するためのリストビューの編集テキストがあります。ここに私のコードの一部です:

public void onTextChanged(CharSequence s, int start, int before,int count) {
            String sCondition = "C_Data like '%" + ed.getText() + "%'";
            Cursor data = database.query("tbl_Contents", fields, sCondition, null, null, null, "C_Data");
            dataSource = new SimpleCursorAdapter(items_list.this, R.layout.row, data, fields, new int[] { R.id.first});
            lv1.setAdapter(dataSource); 
        }

私はそれをテストしてうまくいくようですが、ユーザがキーを押すたびにそのコードがデータベースにアクセスする必要があるため、パフォーマンスが心配です。

明示的な検索ボタンを使用しないと、検索のパフォーマンスをどのように改善できますか?

3
成果の問題はありますか?そうでない場合は、それをそのままにして、過度に最適化しようとしないでください
追加された 著者 Konstantin Pribluda,

2 答え

もう1つの選択肢は、キープレスカウンタに結合された各キープレスでタイマーを開始することです。 N回のキーストロークのたびに、またはタイマーがオフになるたびに、クエリDBクエリ関数が呼び出されます。また、別のキーが押されたときにタイマーがすでに実行されている場合、単に遅延をリセットするだけです。 100ミリ秒のタイマーディレイを使用する場合は、タイピングを続行するのに十分な時間を与えながら、ユーザーにとって十分速く感じるでしょう。入力が停止すると検索が実行されます。

このようなものは、DBクエリの数を減らし、ユーザーが入力中にクエリを発行している間に

0
追加された

私が考えることのできることの1つは、あなたのリストビューに(あなたが必要とするフィールドだけで)リストを作成することです。だからあなたはDBを打つよりもリストを検索することができます。

0
追加された