После изменения предпочтения (установка), текстовые настройки показа не обновляют

Я попытаюсь объяснить сценарий простого приложения: Мое приложение идет право на 'основное представление'. В этом основном представлении я вставил a TextView который отображает текущие настройки, созданные посредством PreferenceManager. Для пользы простоты скажем, у меня есть флажок в моих настройках. Когда я сначала запускаю свое приложение - TextView на моем основном представлении показывает мой флажок, устанавливающий правильно (верный). Теперь я перехожу к меню параметров, оно открывается, и затем я изменяю его на ложь. Я возвращаюсь к основному представлению и не вижу изменения. Это все еще say's, верный даже после того, как я изменил его на ложь. Если я заканчиваю приложение и затем перезапускаю его - все хорошо, и оно показывает мое изменение.

По-видимому, основное представление просто остается в фоновом режиме, в то время как я изменяю настройки? Как я могу перерисовать или обновить основное представление после того, как я изменю настройки?

13
задан Laurent Etiemble 1 March 2013 в 14:28
поделиться

2 ответа

Когда вы заходите в настройки, ваша текущая активность должна приостанавливаться и возобновляться, когда вы возвращаетесь обратно (см. диаграмму жизненного цикла на диаграмме жизненного цикла на сайте android). Я думаю, что вы должны быть в состоянии вызвать некоторую перерисовку из onResume(). Это позволит повторно заполнить данные на странице. Полагаю, это сделает какой-нибудь вызов invalidate().

4
ответ дан 1 December 2019 в 21:24
поделиться

Вы можете реализовать OnSharedPreferenceChangeListener в своем основном Activity:

@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
    if (PREFKEY_OF_INTEREST.equals(key))
        updateSomethingInMainView();
}

и в вызове onCreate ():

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
22
ответ дан 1 December 2019 в 21:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: