Обновленные представления настроек при использовании функции предпочтения

Я пытаюсь активировать PreferenceActivity для обновления. Кто-нибудь знает, как это сделать?

У меня есть класс ResetDefaultsPreference, который подклассы Preference и, при нажатии, должен reset по умолчанию использовать все настройки, ключи которых начинаются с определенного префикса. Он работает, но когда я нажимаю на reset предпочтение, ни одна из настроек в этом обновлении экрана пока я не вернусь из экрана и не вернусь. (Это работает для некоторых пользовательских цветовых предпочтений, но даже это не работает для some ListPreference - для тех, кому я должен уйти и повторно ввести сам PreferenceActivity для обновленных значений, которые будут показаны.)

Я попытался исправить это, получив представление root и invalidate(), но это, похоже, не работает. Здесь строка для обновления дисплея. Это часть подкласса Preference, который поддерживает Context, он был создан с помощью mContext.

((Activity)mContext).findViewById(android.R.id.content).invalidate();

Это происходит после того, как значения предпочтений были изменены и зафиксированы. (Значения меняются, но на дисплее нет.) Кто-нибудь знает, как я могу заставить PreferenceActivity обновить себя?

Ответы

Ответ 1

Я не знаю, как "обновить" PreferenceActivity, но вы можете создать иллюзию для пользователя. Он закроет и снова откроет активность без анимации, поэтому он будет выглядеть так, как если бы значение просто изменилось.

Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);