Android CheckBoxPreference:如何在首选项更改时禁用和启用其他首选项
我有 CheckBoxPreference 和另外 2 个:一个是 Edit Test Pref。另一个是 ListBox Pref。如何启用列表框首选项和禁用编辑文本首选项。当 CheckBoxPreference 打开时?
I have CheckBoxPreference and 2 others: one is Edit Test Pref. and another is ListBox Pref. How I can enable list box pref and disable edit text pref. when CheckBoxPreference is turned on?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
作为变体,可以将“依赖项”放入 ListBoxPref 中。
基本上,宝宝在父母睡觉的时候是不能和他们玩的 =)
As a variant, it's possible to put the "dependency" into the ListBoxPref.
Basically, baby can't play with parents when they are sleeping =)
似乎与 this Question
您可以覆盖
public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences, Final String key)
并在调用时使用key.equals(<您的设置密钥>)
执行以下操作:此外,在
onCreate()
中执行相同操作,以使您的首选项屏幕正确初始设置。Seems it's duplicate of this question
You can override
public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences, final String key)
and when it get called withkey.equals(<Your key for setting>)
do something like:Also, do the same in
onCreate()
to have Your preferences screen proper initial setup.您可以获得复选框值。然后,要启用/禁用首选项,您可以使用
pref.setEnabled(false);
要启用,只需使用相同的函数并输入 true 值即可。You can get the checkbox value. And then, to enable/disable the preferences, you can use
pref.setEnabled(false);
To enable, just use the same function and put the true value.只是为了简化 Sergio 的答案,
这使得该项目依赖于父项目,可能需要一个开关。
有时还向 onSharedPreferenceChanged 添加一个侦听器。它有时无法按预期工作(不知道为什么)
在 OnCreate() 之后添加
然后
Just to simplify the answer from Sergio,
This makes the item dependent on the parent item, may need to be a switch.
Also adding a listener to the onSharedPreferenceChanged works, sometimes.. it sometimes doesn't work as desired ( not sure why )
Add
Then after OnCreate()