データベースから照会されたアイテムの単一選択(例:ラジオボタン)リストを作成しようとしています。現在選択されている行を操作するには、ListViewのgetCheckedItemPosition()
とsetItemChecked()
メソッドを使用する必要があります。ListAdapterの行IDからListViewアイテムIDを取得する
ListView
にはSimpleCursorAdapter
が設定されています。現在選択されているアイテムを取得するときは、ローIDがデータベースから取得されます。これは適切なアイテムを見つけて前述の方法で手動で選択する必要があります。つまり、行IDの状態を必然的に単調な行IDにマッピングする必要があります(setItemChecked()
メソッドはデータベース行IDではなく、位置IDを受け入れ、データベースでアイテムを削除できるため)。
私はテーブルの行IDから位置IDを取得する方法はありますか?可能であれば、私はむしろ検索をすることに頼っていません。
ありがとうございました。
私はあなたの質問が正しい場合(私は願っています)私はあなたがKeyValuePairを使うべきだと思います、キーは行idであり、値は位置IDです。位置の数を維持するために、カウンタを使用して、クエリに基づいて項目が追加されるたびに更新することができます。 –
事実ですが、私は 'SimpleCursorAdapter'をSQLiteクエリの' Cursor'で使用します。これはすべて自動的に行われます。つまり、startManagingCursor()を使用します。アイテムを追加したときに傍受して(おそらく 'SparseIntArray'を使って)インデックスを作成できるようにする方法はありますか?それとも私がこのように間違っているのか? –