2

PreferenceActivity的文档指出“当用户与它们交互时,这些首选项将自动保存到 SharedPreferences。” 在这种情况下,如果我继承 PreferenceActivity,在 onCreate 中调用addPreferencesFromResource,在 UI 中设置一些首选项,我希望对我的首选项所做的任何更改都应该自动保存;当我稍后返回我的首选项屏幕时,所有首选项都应该恢复。

我问的原因是 CheckBoxPreference 的行为不符合预期,当然假设我的理解是正确的。我希望如果我有一个 CheckBoxPreference 用户选择应该在更改时自动保存。不是这样吗?

那么任何人都可以确认我的理解或在必要时纠正我吗?

我可以创建一个自定义首选项屏幕,在其中处理代码中的所有更改,但我更喜欢使用推荐的方法。我只是想知道是否有错误。

可以说我现在有点沮丧。

顺便说一句,我正在针对 api 的 v2.0 进行开发。

4

2 回答 2

1

我希望如果我有一个 CheckBoxPreference 用户选择应该在更改时自动保存。不是这样吗?

如果他们做出积极的选择,这很好。如果他们访问您的活动并且不触摸 a CheckboxPreference,它将保持默认状态。

于 2010-09-09T14:59:13.680 回答
1

事实证明我的错误很简单。

我正在使用 strings.xml 来存储复选框键的名称,并在运行时取消引用它,就像我们对标签等所做的那样。好吧,这个值被解析为在其中有一个空格,所以它当然不起作用。

错误的字符串条目是这样的:

<string name="key_vibrate_pref">Vibrate preference</string>

它应该是这样的:

<string name="key_vibrate_pref">ckPrefVibrate</string>

啊!!!!

于 2010-09-10T12:13:54.010 回答