Обновление представлений предпочтений при использовании PreferenceActivity

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

у меня есть ResetDefaultsPreference класс, который подклассы Preference и при нажатии предполагается, что по умолчанию сбрасываются все настройки, ключи которых начинаются с определенного префикса. Это работает, но когда я нажимаю на настройку сброса, ни одно из предпочтений на этом экране не обновляется, пока я не выхожу из экрана и не возвращаюсь обратно. (Это работает для некоторых пользовательских цветовых предпочтений, но даже это не работает для некоторых ListPreferences - для тех, кого я должен покинуть и повторно войти в 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);
Другие вопросы по тегам