【发布时间】:2011-07-20 01:03:28
【问题描述】:
我有一个带有嵌套 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(),但这也不起作用。
【问题讨论】:
标签: android