У меня есть PreferenceScreen, определенный в XML-файле, например:
<PreferenceCategory android:title="Choose Days">
<PreferenceScreen android:title="Days of Week" android:key="daysOfWeek">
<CheckBoxPreference android:title="Mondays" android:key="chkMonday"></CheckBoxPreference>
<CheckBoxPreference android:title="Tuesdays" android:key="chkTuesday"></CheckBoxPreference>
<CheckBoxPreference android:title="Wednesdays" android:key="chkWednesday"></CheckBoxPreference>
<CheckBoxPreference android:title="Thursdays" android:key="chkThursday"></CheckBoxPreference>
<CheckBoxPreference android:title="Fridays" android:key="chkFriday"></CheckBoxPreference>
<CheckBoxPreference android:title="Saturdays" android:key="chkSaturday"></CheckBoxPreference>
<CheckBoxPreference android:title="Sundays" android:key="chkSunday"></CheckBoxPreference>
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title="Other Settings">
<CheckBoxPreference android:title="Enable" android:defaultValue="true" android:key="enable"></CheckBoxPreference>
</PreferenceCategory>
Когда я нажимаю на PreferenceScreen: daysOfWeek, появляются флажки, например, когда я отмечаю или снимаю флажок, onSharedPreferenceChanged срабатывает.
Это из-за этого:
открытый класс Muteny расширяет PreferenceActivity реализует OnSharedPreferenceChangeListener {
и регистрирует его в onResume и отменяет его регистрацию в onPause вмой файл .java.
Упрощенный onSharedPreferenceChanged выглядит следующим образом:
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
PreferenceScreen daysOfWeek = ((PreferenceScreen)findPreference("daysOfWeek"));
daysOfWeek.setSummary("text for summary");
Toast.makeText(this.getApplicationContext(), "Hello", Toast.LENGTH_LONG).show();
}
Проблема в том, что сводка "daysOfWeek" никогда не обновляется.Если я затем переключу CheckBoxPreference на «enable» (который на данный момент ничего не делает, но вызывает изменение), сводка обновляется так, как я этого хотел при переключении «дневников».
Сообщениев Toast IS отображается, хотя ...
Как обновить сводку моего PreferenceScreen при проверке «дневных ящиков»?