Обновленные представления настроек при использовании функции предпочтения
Я пытаюсь активировать 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);