2

我有一些 PreferenceActivity 并且有一些 CheckBoxes。

<PreferenceScreen
        android:key="prefGraphValues"
        android:title="@string/pref_graph_values"
        android:persistent="false" >
         <CheckBoxPreference
            android:defaultValue="true"
            android:key="Temp.Dry"
            android:summary="@string/pref_graph_value_temp_dry_summary"
            android:title="@string/pref_graph_value_temp_dry" >
        </CheckBoxPreference>
</PreferenceScreen>

在代码的某个地方我有这样的东西:

checkBox.setEnabled(false);

但是当我关闭此活动并稍后启动它时,复选框已启用。我可以保存这个状态吗?

谢谢

4

2 回答 2

2

将您的持久属性更改为 true。

android:persistent="true"

实际上,如果您将其分配给它,false则意味着首选项不会将值存储到 SharedPreferences,这就是您的状态未保存在“下一次启动”中的原因。

于 2013-04-10T07:33:52.860 回答
0

您必须将更改应用于 sharedpreference,下次复选框将通过 sharedpreference 中的键检索值。

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt(your_key, your_value).apply();
于 2013-04-10T07:40:40.363 回答