我使用以下代码将项目添加到列表中。我需要保存并加载复选框的状态,但我不知道如何。
我想我需要使用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" />