gpt4 book ai didi

android - 偏好在 PreferenceActivity 中自行停用

转载 作者:行者123 更新时间:2023-11-29 18:02:18 25 4
gpt4 key购买 nike

我的 Android 应用程序中有一个 PreferenceActivty,由于兼容性原因,我通过 getPreferenceScreen() 方法和我在代码中创建的一些 Preference 对象使用它,主要是 CheckBoxPreference 和 SwitchPreference。

在我的应用程序的前一个版本中,总共有 8 个首选项并且一切正常,但现在我又添加了 2 个首选项,我遇到了一个非常奇怪的问题。

屏幕上的第二个首选项是 SwitchPreference。当我打开 Activity 时,它会被选中。如果我在没有实际更改任何内容的情况下向下滚动屏幕,突然它的值会自动设置为 OFF。我尝试将 OnChangeListener 添加到 Preference 并实现 OnSharedPreferenceChangeListener,但结果是一样的:一旦该特定 Preference 从屏幕上消失,它就会关闭。如果它被设置为 OFF,它会保留它的值并且不会调用更改监听器。

有人知道为什么会发生这种情况吗?我完全迷路了...

提前致谢!


我的偏好代码基本上是这样的,在 onCreate 方法上针对 5 种不同的设置重复 5 次:

controlWifiPreference = new CheckBoxPreference(this);
controlWifiPreference.setKey(Constants.PREF_1_KEY);
getPreferenceScreen().addPreference(controlWifiPreference);

wifiPreference = new SwitchPreference(this);
wifiPreference.setKey(Constants.PREF_2_KEY);
getPreferenceScreen().addPreference(wifiPreference);

由于首选项位于 TabActivity 内,在 onResume 方法上我为每个首选项调用 setChecked() 以再次设置其值,但我不确定它是否完全必要。

最后,我有一个 onSharedPreferenceChanged 方法可以在单击其他人时激活/停用首选项,因为我无法使 setDependency 方法起作用。是这样的(再次重复五次):

if (key.equals(controlWifiPreference.getKey())) {
wifiPreference.setEnabled(controlWifiPreference.isChecked());
}

最佳答案

原来这是 SwitchPreference 类中的 Android 错误。有人(我非常感谢 ;))向 b.android.com 报告了它,甚至发布了解决方法。都在这里:https://code.google.com/p/android/issues/detail?id=26194

关于android - 偏好在 PreferenceActivity 中自行停用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15302139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com