2
我有一個PreferenceScreen嵌套PreferenceScreen的PreferencesActivity,因此PreferenceScreen在首選項列表中有自己的行,當您單擊它時,會出現幾個選項。從嵌套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(),但那也不起作用。