gpt4 book ai didi

java - 以编程方式更改首选项值后更新它们

转载 作者:太空宇宙 更新时间:2023-11-04 15:12:40 25 4
gpt4 key购买 nike

我有一个简单的 PreferenceActivity。
在我的 Activity 中,我使用存储在这些键中的值。
通过 getDefaultSharedPreferencesgetBoolean("somekey")

如果我现在更改与“somekey”相关的首选项,一切都会正常
getBoolean 返回正确的值。

但是如果我以编程方式将值“somekey”设置为另一个值,
通过 Preferences.Editor 设置 View 不会更新为新值!像这样:

pref_edit.putBoolean("somekey", true);
pref_edit.commit();

如果“somekey”之前为真,我现在通过 getBoolean("somekey"); 获取值;
它是 true 就像我更改的那样,但首选项内的复选框错过了此更改。
为什么?我如何更新首选项 View ?

最佳答案

嗯,这是一个有效的问题,但这不是一个简单的问题 - 有些人说完成,另一些人则 say

setPreferenceScreen(null);
addPreferencesFromResource(R.xml.preferences);

为了避免此类措施以及它们在平板电脑等设备上造成的困惑,我最终所做的就是注册 SharedPreferences.OnSharedPreferenceChangeListener (使我的首选项 Activity 成为一个),当我检测到首选项发生更改以更新我的复选框时(如果其值与存储的首选项不一致 - 所以它没有手动更改,因为如果手动更改,我有一个 onClick 更改默认共享首选项)。确实很烦人。

关于java - 以编程方式更改首选项值后更新它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21171530/

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