保存CheckedTextView复选框状态

时间:2016-01-07 09:52:28

标签: android checkedtextview

我使用以下代码将项目添加到列表中。我需要保存并加载复选框的状态,但我不知道如何。

我想我需要使用SharedPreferences,我尝试在下面执行此操作 正确完成了吗?

但我还需要在打开应用程序时加载用户选择。我想我需要在onResume()中执行某些操作,但我无法弄清楚如何循环复选框并检查SharedPreferences 他们应该拥有的国家。

有人对此有任何建议吗?

    private void addDrawerItems() {
    String[] pArray = { "Item 1", "Item 2", "Item 3" };
    mAdapter = new ArrayAdapter<String>(this, R.layout.list_item, pArray);
    mDrawerList.setAdapter(mAdapter);
    mDrawerList.setItemsCanFocus(false);
    mDrawerList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            CheckedTextView ctv = (CheckedTextView) view;
            if (ctv.isChecked()) {
                pSelected.add(ctv.getText().toString().toLowerCase());
                SharedPreferences settings = getSharedPreferences("selection", Context.MODE_PRIVATE);
                settings.edit().putBoolean(ctv.getText().toString().toLowerCase(),true).commit();
            } else if (!ctv.isChecked()) {
                pSelected.remove(ctv.getText().toString().toLowerCase());
                SharedPreferences settings = getSharedPreferences("selection", Context.MODE_PRIVATE);
                settings.edit().putBoolean(ctv.getText().toString().toLowerCase(),false).commit();
            }
        }
    });
};

我在CheckedTextView中定义了list_item.xml

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/checkedTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:gravity="center"
android:drawableLeft="?android:attr/listChoiceIndicatorMultiple" />

0 个答案:

没有答案