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