ネストされた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()をオーバーライドしようとしましたが、それはどちらも動作しません。