如何将多选列表视图中的信息保存到数据库中?我想从列表中保存项目的状态。例如,如果我检查了2个项目,我想将此状态保存在数据库中。
由于
答案 0 :(得分:0)
当然fegol,
我假设您已经设置了多项选择列表视图。 (如果没有,请在线查看有大量的http://www.androidpeople.com/android-listview-multiple-choice-example)。
在这里,我想给你一些关于数据保存问题的提示。
基本上,有两种常见的选择。 第一个是在listview上使用getCheckedItemIds()或getCheckedItemPositions()(http://developer.android.com/reference/android/widget/AbsListView.html#getCheckedItemIds())。
更灵活的第二个是编写自定义适配器。您可以使用isChecked()来检查复选框是否已选中,然后将状态保存到您的hashmap中。然后,您可以在最后获得所有复选框状态。
我为你准备了第二种方法的伪代码。希望这会有所帮助。
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);
}
}
}