2011-06-21 9 views
1

CheckedTextViews で埋め込まれたリストビューを作成しようとしています。フィルタを使用してリストビュー (カスタムArrayAdapterの配列を使用)をすばやく検索できます。私はリストビューを宣言するXMLの をmultipleChoiceフラグに設定し、フィルタを使用しないときは は複数のエントリをチェック/チェック解除できます。 フィルタを使用してエントリを検索すると、エントリを選択できます。 しかし、フィルタをクリアすると(backspaceを押すと) のエントリがチェックされていますが、チェックしたい実際のエントリはもう ではありません。CheckedTextViewsのリストビューをフィルタで使用する

アダプタのgetView()メソッドのCheckedTextView でチェック状態を手動で設定しようとしましたが、それは のようには見えません。私はちょうど笑顔のために、 ListViewのCheckedTextViewでは、isCheckedをfalseに設定しようとしましたが、ChecklightTextViewは、フィルタの使用中にチェックされたままです。

誰もこのようなものを実装している運がありましたか、または の推奨事項がありますか?

おかげ アダム

答えて

4

あなたはListView#clearChoices()で見たいと思うかもしれません。 ListView自体は、アイテムのIDではなく、アダプタアイテムの位置に基づいて選択肢を維持しています。したがって、位置が(例えば、フィルタリングによって)変化する場合、選択位置はもはや有効ではなくなる。

それはまた、あなたがListView#getCheckedItemIds()を取得することができ、確認IDのリストを維持しないと、限り、あなたのアダプタが安定したIDS(すなわちを持っているとして、特定のID は常に同じ概念の項目を参照し、はしませんは項目の順序やフィルタリングによって異なります)、フィルタを変更したときにチェックされた位置を復元するために使用することができます(IDを位置に合わせるためにアダプタ全体を反復する必要があります)。

関連する問題