2

カーソルオブジェクトからアイテムを削除しようとしていますが、その方法がわかりません(または可能かどうか)。ユーザーの設定によっては、データベースからアイテムを実際に削除するのではなく、単に「フィルター」して表示しないようにします。

たとえば、FILTER_TEXTこれはアプリケーション設定からのものであり、カーソルに含める必要のあるテキストが含まれています。そうでない場合は削除されます。

Cursor mCursor = mDB.query(dbTable, new String[] {KEY_ROWID, KEY_NAME,
            KEY_URL}, null, null, null, null, null);

    if (mCursor.moveToFirst()) {
        do {
            if (!mCursor.getString(1).contains(FILTER_TEXT)) {
                // Remove cursor item here
            }
        } while (mCursor.moveToNext());
    }

これがこれに取り組む正しい方法であるとかなり確信していましたが、カーソルからアイテムを削除する方法が見つかりません...

助けていただければ幸いです、乾杯!

4

2 に答える 2

0

に入る前にフィルタリングすることをお勧めしますCursor。それらのアイテムが決して入らないように、それを生成するクエリを変更してみてください。このようにして、SQLiteは、リソースを消費する前に、これらの不要なものを除外できます。

これを行うには、次のように「query」の「selection」パラメータに送信します。

KEY_NAME + " LIKE '%" + FILTER_TEXT + "%'"

(これには微調整が必​​要な場合があります。私のSQLは錆びています。)

を調べてみることもできますSQLQueryBuilder

可能かどうかについては、ドキュメントであなたが望むことをするものは何も見つかりませんでした。Cursor読み取り専用だと思います。

于 2011-06-29T23:35:07.440 に答える
0
  • つまり、ユーザーがフィルタリング可能なリストを実装する場合は、CursorAdapterを使用して、ListViewssetTextFilterEnabledをtrueに設定するだけです。
  • CursorLoaderを使用して、バックグラウンドで新しいカーソルをロードし、ロード時にスワップインすることができます。
于 2011-06-29T23:49:05.257 に答える