の目的を誤解している可能性があると思いますBaseAdapter
。BaseAdapter
派生クラスは、データセットと、AdapterView
そのデータセットの情報を表示する (および/またはそれと対話する) 間のインターフェイスとして機能することを意図しています。
それを念頭に置いて、あなたがやっていることを達成する最も簡単な方法はboolean
、データセットの一部として を使用してアイテムがチェックされているかどうかを追跡することだと思います. たとえば、データセットが の場合、メンバーをArrayList<SomeObjectYouMadeUp>
に追加します。の実行中に設定し、の実行中に を視覚的にチェックする必要があるかどうかを判断するために使用します。boolean
SomeObjectYouMadeUp
CheckBox
OnCheckedChangeListener
CheckBox
getView()
それにはコードを再考する必要があるかもしれませんが、私を信じてください。あなたが説明している方法でそれを行うことは可能ですが、簡単でも信頼できるものでもありません。here で説明されている方法AdapterView
を使用して、表示されている各ビューに個別にアクセスすることをお勧めしますが、これもお勧めしません。
最大の理由はonSaveInstanceState
、画面の回転など、構成の変更中に最も一般的に発生することです。これは、同じビューを表示するというのはほぼ間違いなく間違っていることを意味します。縦方向に表示されるビューが 10 個あり、横方向に表示されるビューが 5 個あるとします。ユーザーが横向きに回転すると、どの 5 つが得られるでしょうか? 確かに知っていますか?View
おそらく保持しなければならないいくつかの識別情報に対して、それぞれの新しいビューをチェックする必要があります。またonSaveInstanceState
、ローテーション前に新しいビューの 1 つが表示されなかった場合はどうなるでしょうか?
質問のリストは続きます。チェック状態を残りのデータセットと一緒に保存し、Android に任せてください。