ListViewのチェックボックスをデフォルトでONにしたい
ListViewにsetChoiceModeメソッドを使ってListView.CHOICE_MODE_MULTIPLEを設定すると、複数選択ができるチェックボックスを付けることができます。
そして、SimpliCursorAdapterなどによってデータをListViewにバインドさせると、確かにチェックボックス付きのリストを表示させることができるのですが、デフォルトではチェックボックスがOFFになっています。レイアウトxmlで設定したCheckedTextViewのandroid:checked属性をtrueにしても、やはりチェックボックスはOFFのまま。
しかし、アプリによってはデフォルトでチェックボックスをONの状態にしておきたいときがあります。例えば、ListViewに動的にデータが追加されて、且つその追加されたデータのチェックボックスの初期状態をONにしたいなど。
色々と試したのですが、結局、ListViewのsetItemCheckedメソッドを使って自分でチェックボックスをONにするやり方でしか実現しませんでした。CursorLoaderを使ってListViewに表示するデータを取得しておき、後にデータが追加されてLoaderManagerのonLoadFinishedがコールバックされた時に、チェックボックスの操作をする(setItemCheckedメソッドでONまたはOFFにする)。
一応このやり方で、ListViewにデータが追加されるとチェックボックスをデフォルトでONにすることができました。(ただし、このやり方ではLoaderManagerのinitLoaderではなく、restartLoaderをあらかじめ実行しておく必要があります。)
他に簡潔な実現方法があるのかもしれませんが…