3

Я вызываю функцию предпочтения из другого действия, а затем обновляю состояние приложения (т. Е. Изменяя размер шрифта) на onActivityResult на основе изменений предпочтений.Реагирование на обновления предпочтений в Android

Я думал, что было бы лучше поставить логику обновления состояния в PreferenceActivity. Таким образом, у меня нет дубликата логики в каждом действии, вызывающем PreferenceActivity.

Каков наилучший или правильный способ сделать это?

ответ

7

Имейте Activity (или другой компонент), который интересуется изменениями предпочтений, регистрирует прослушиватель изменений предпочтений через registerOnSharedPreferenceChangeListener(). Затем, когда предпочтения меняются каким-либо образом, они узнают об этом и могут соответственно реагировать.

+0

Ох. Я не знал, что это даже существовало. Большое спасибо, CommonsWare! – hpique

+0

@CommonsWare +1 для общего направления, но [этот ответ] (http://stackoverflow.com/questions/7020446/android-registeronsharedpreferencechangelistener-causes-crash-in-a-custom-view/7021068#7021068) намного яснее и проще реализовать. – ateiob

+0

Отличный метод +1. Кроме того, _must_ вызывает 'unregisterOnSharedPreferenceChangeListener' при закрытии/уничтожении компонента. –

0

PreferenceActivity должен обрабатывать все настройки предпочтений. В ваших других действиях следует прочитать, что эти настройки, когда они запускаются и соответствующим образом корректируются.

Смежные вопросы