Конечно Фегол,
Полагаю, вы уже настроили просмотр списка с множественным выбором. (если нет, пожалуйста, проверьте онлайн, есть ли их кучи http://www.androidpeople.com/android-listview-multiple-choice-example).
Здесь я хотел бы дать вам несколько советов по проблеме сохранения данных.
По сути, есть два общих варианта. Первый должен использовать getCheckedItemIds () или getCheckedItemPositions () в вашем списке (http://developer.android.com/reference/android/widget/AbsListView.html#getCheckedItemIds()).
)
Второй , который является более гибким, заключается в написании специального адаптера. Вы можете использовать isChecked (), чтобы проверить, был ли установлен флажок, а затем сохранить статус в вашей хэш-карте. Тогда вы можете получить все статусы флажков в последний раз.
Я поместил некоторый псевдокод для второго подхода для вас. Надеюсь, это поможет.
ArrayList<Boolean> checkList = new ArrayList<Boolean>();
// TODO: put some empty data into checkList
private OnItemClickListener myListItemClickListener = new ListView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
if(checkList.get(position)){
checkList.set(position, false);
}else{
checkList.set(position, true);
}
((mAdapter)mList.getAdapter()).notifyDataSetChanged();
}
}
class mAdapter extends BaseAdapter{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (checkList.get(position)){
checkBox.setChecked(true);
}else{
checkBox.setChecked(false);
}
}
}