web-dev-qa-db-ja.com

Android ListView CHOICE_MODE_MULTIPLE、チェックされたインデックスを設定する方法?

ListViewのクールな機能を使用して、ListViewの項目の横にチェックボックスを表示しています。リストを文字列の配列にバインドします。 onClickおよびonSelectedItemリスナーは正常に呼び出されます。このようにして、チェックされた(またはチェックされていない)「文字列」のインデックスがわかります。

チェックされたすべての文字列を(コンマ連結文字列として)設定に保存し、アクティビティが表示されるたびに、チェックされた項目をリストビューに戻したいと思います。

それを行う方法はありますか?または、CHOICE_MODE_MULTIPLEはチェックされたアイテムを設定することを許可しませんか?

注:表示するのは文字列とチェックボックスだけなので、カスタムビューを使用していません。 setSelection(index)を試しましたが、選択された(強調表示された)行だけが設定されます。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,Android.R.layout.simple_list_item_multiple_choice,names);
m_playlists_list.setAdapter(adapter);
m_playlists_list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
19
sosergio

ListViewの-​​ setItemChecked メソッドを使用します

指定された位置のチェック状態を設定します。結果は、選択モードがCHOICE_MODE_SINGLEまたはCHOICE_MODE_MULTIPLEに設定されている場合にのみ有効です。

39
Tanmay Mandal