Android:如何使用SharedPreferences.Editor启用禁用的首选项

时间:2018-08-14 17:52:56

标签: android

我已经使用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();
                }

上面的代码将在复选框中打勾,但首选项仍显示为灰色或已禁用。如何通过编程使首选项启用或取消显示灰色,以便用户可以对其进行检查或取消选中?

0 个答案:

没有答案