gpt4 book ai didi

android - 从嵌套的 PreferenceScreen 返回时更改摘要

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

我有一个带有嵌套 PreferenceScreen 的 PreferencesActivity,因此 PreferenceScreen 在首选项列表中有自己的一行,当您单击它时,您会看到更多选项。

当用户更改其中一个选项时,我会更新该选项的摘要以显示用户已选择的内容。

我还想更改主列表中 PreferenceScreen 的摘要,以显示其子设置的值。我正在使用 OnSharedPreferenceChangeListener 一次更新两个摘要。但是,只有首选项的摘要会发生更改,首选项屏幕的摘要不会更改。

这里是简化的代码:

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals(SUB_PREFERENCE)){
updateSubPreferenceSummary(); //works
updatePreferenceScreenSummary(); //doesn't work
} else if (key.equals(SOME_OTHER_PREF_IN_ROOT_OF_PREFERENCEACTIVITY) {
updatePreferenceScreenSummary(); //works. (not what I want--just illustrating issue)
}
}

我的理论是 Android 会在第一个屏幕不可见时忽略它,因此它不会得到更新。我尝试覆盖 onBackPressed(),但这也不起作用。

最佳答案

我找到了解决方法。显然,摘要正在更新,但父屏幕的 View 并未失效/重绘。

所以我在更新摘要后这样做:

mHandler.post(new Runnable(){
public void run(){onContentChanged();
}});

作为预防措施,我将它放在 Handler 中,因为我不确定从哪个线程调用 onSharedPreferenceChanged()。

关于android - 从嵌套的 PreferenceScreen 返回时更改摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6755895/

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