Android プログラミングの学習の一環として、タスクを SQLlite DB に保存する単純な todo アプリケーションを作成するタスクを与えられました。
ユーザーが追加する実際のタスクを含む、xml 内の listView に「リンク」するために、cursorAdapter (またはこのクラスのカスタム拡張機能) を使用します。
私のアプリケーションは、このリストの 2 つの単純な操作 (追加と削除) をサポートする必要があります。問題は、このリストにアイテム (タスク) を追加または削除するたびに、現在のアダプターにはもはや関係のないカーソルがあるため、それ (adapter.chagneCursor(newCursor) ) を別のものに置き換える必要があるということです。
流れは次のようなものです。
- リクエストされたタスクを追加
- SQL クエリの実行 (テーブルの挿入など)
アダプタのカーソルを更新します: adapter.changeCursor( newCursor )
- 私が抱えている問題は、この newCursor にあります。この newCursor は、単にテーブルのすべての値を返す SQL クエリを実行する別のメソッドを実行することによって実現されます (IE SELECT * from t;)
私の質問は次のとおりです。これはかなり非効率的で無駄が多いように思えます。タスクを追加 (または削除) するたびに、テーブル内のすべての値を調べてカーソルを返す別のクエリを実行する必要があります。これを行う別のより効率的な方法があるのではないかと思います。
私はAndroidプログラミングに非常に慣れていないことに注意してください。アドバイスや修正があれば感謝します。
ありがとう!