我已经使用XML定义了一些复选框首选项。
<PreferenceCategory
android:title="@string/pref_category_features"
android:key="pref_category_features">
<CheckBoxPreference
android:key="pref_feature_stop_clock_when_power_pulled"
android:title="@string/pref_feature_stop_clock_when_power_pulled"
android:summary="@string/pref_feature_stop_clock_when_power_pulled_summary"
android:defaultValue="false"
android:enabled="false"
/>
<CheckBoxPreference
android:key="pref_feature_stop_clock_when_midnight"
android:title="@string/pref_feature_stop_clock_when_midnight"
android:summary="@string/pref_feature_stop_clock_when_midnight_summary"
android:defaultValue="false"
android:enabled="false"
/>
</PreferenceCategory>
使用android:defaultValue =“ false”和android:enabled =“ false”通过设计取消选中和禁用首选项。
现在,我想启用或取消显示一个偏好设置,以便可以选中/取消选中该复选框。我已经尝试过以下代码的各种迭代。
if(feature1 == true)
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor prefEditor = prefs.edit();
prefEditor.putBoolean("pref_feature_stop_clock_when_power_pulled",true);
prefEditor.commit();
}
上面的代码将在复选框中打勾,但首选项仍显示为灰色或已禁用。如何通过编程使首选项启用或取消显示灰色,以便用户可以对其进行检查或取消选中?