Android多选列表SQLite

时间:2011-06-01 23:57:20

标签: android listview android-listview

如何将多选列表视图中的信息保存到数据库中?我想从列表中保存项目的状态。例如,如果我检查了2个项目,我想将此状态保存在数据库中。

由于

1 个答案:

答案 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);
            }
        }
    }
相关问题