我有CheckBoxPreference和其他两个:一个是编辑测试首选项。另一个是ListBox首选。How I can enable列表框首选项和disable编辑文本首选项。何时打开CheckBoxPreference?
发布于 2011-10-13 17:22:41
看起来是this question的翻版
您可以覆盖public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences, final String key)
,并在使用key.equals(<Your key for setting>)
调用它时执行如下操作:
boolean isEnabled = sharedPreferences.getBoolean(key, true);
getPreferenceScreen().findPreference("list box preference key").setEnabled(isEnabled);
getPreferenceScreen().findPreference("list box preference key").setEnabled(!isEnabled);
此外,在onCreate()
中执行相同的操作,以使您的首选项显示正确的初始设置。
发布于 2016-03-17 15:59:44
作为一种变体,可以将“依赖项”放入ListBoxPref中。
<PreferenceCategory
android:key="key1"
android:title="@string/title1">
<SwitchPreference
android:key="parents"
android:summaryOff="@string/do_smthng"
android:summaryOn="@string/do_smthng"
android:switchTextOff="@string/i_am_sleeping"
android:switchTextOn="@string/i_have_free_time" />
<CheckBoxPreference
android:key="baby"
android:dependency="parents"
android:title="@string/basic_habbits"
android:summaryOff="@string/play_with_parents"
android:summaryOn="@string/play_with_parents"
android:defaultValue="true" />
</PreferenceCategory>
基本上,宝宝在睡觉的时候不能和父母一起玩=)
发布于 2014-01-17 12:37:56
您可以获取复选框值。然后,要启用/禁用首选项,您可以使用pref.setEnabled(false);
来启用,只需使用相同的函数并输入真值。
https://stackoverflow.com/questions/7751525
复制相似问题