2

我有一个项目列表,当单击这些项目时会打开一个新活动(从现在开始的食谱活动),其中显示一个图像、2 个文本视图和一个复选框。

该列表由带有字符串数组的 xml 文件填充。根据单击的内容,配方活动会显示从另一个 xml 文件中提取的信息。像这样的东西:

1.(在列表中)

(字符串产品 = ((TextView) 视图).getText().toString();)

2.(在食谱活动中)

if(product.equals("Naan")) sastojci = getString(R.string.sNaan);

无论如何,问题如下:

我想要一个可以读取产品变量的复选框,检查它是否之前被选中并放入收藏夹(共享首选项),然后取决于是否在收藏夹中显示其正确状态(选中或未选中)。

因为现在我有一个复选框,对于我选择的列表中的任何项目都是相同的......如果我选择第一个项目,它将在所有项目上保持选中状态,对于未选中的项目也是如此......

怎么能做这样的事情?

4

1 回答 1

3

好吧,我想我明白了……

首先保存CheckBox所选字符串的状态:

SharedPreferences mySettings = getSharedPreferences("mySettingsfile", MODE_PRIVATE);

mySettingsfile.Editor prefEditor = mySettings .edit(); 
prefEditor.putBoolean("selectedstring", myCheckbox.isChecked());
prefEditor.commit();

现在,通过以下方式加载设置

SharedPreferences mySettings = getSharedPreferences("mySettingsfile", MODE_PRIVATE);
myCheckbox.setChecked(mySettings .getBoolean("selectedstring", false));

在这里,每个字符串的检查状态是分开存储的。

于 2012-09-20T13:55:51.907 回答