Я хочу выбрать элементы, которые пользователь проверяет в представлении списка. Я установил для списка вид CHOICE_MODE_MULTIPLE, и он показывает мне список, где я могу сделать несколько выборов. Но как получить проверенные предметы? Я пытался с помощью:
SparseBooleanArray sp = lv.getCheckedItemPositions ();
Хорошо сохранять отмеченные элементы, но когда любой отмеченный элемент не отмечен, он не обновляет массив; он показывает предыдущие данные, где был проверен теперь непроверенный элемент.
Есть ли способ сделать это ??
Вот мой код:
final ListView lv = new ListView(getApplicationContext());
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice,arrayList);
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?>
myAdapter, View myView, int myItemInt, long mylng){
SparseBooleanArray sp= lv.getCheckedItemPositions();
String str="";
for(int i=0;i<sp.size();i++)
{
str+=arrayList.get(sp.keyAt(i))+",";
}
Toast.makeText(getApplicationContext(),
"You selected: "+str,
Toast.LENGTH_LONG).show();
}
});
Я также хочу запомнить отмеченные позиции и показать их как проверенные при открытии списка.