Куча вопросов, касающихся Android PreferenceActivity
Я использую PreferenceActivity, чтобы установить некоторые предпочтения относительно другого BroadcastReciever, который у меня есть.
В то время как создание скелета GUI предпочтений очень просто с помощью XML-файла, я не могу найти свои руки и ноги вокруг того, как на самом деле сделать что-то с этими предпочтениями. особенно:
-
Как я могу зарегистрировать свой
BroadcastReciever, чтобы слушать изменения в моих предпочтениях? Это выглядит так, что контекст приемника трансляции не совпадает с активностью, поэтому я не регистрируюсь справаSharedPreferencesпотому что я не перехватываю эти изменения. -
Как мне действовать в моем
PreferenceActivityслучае изменения предпочтений? я думаю, что мне не нужно регистрироватьPreferenceActivityв качестве слушателя предпочтений, поэтому должен быть более простой способ. -
Как изменить пользовательский интерфейс
PreferenceActivity, соответствующий изменениям в настройках? например, установите атрибут" Summary " предпочтения в значение, которое выбрал пользователь? -
Как включить или отключить некоторые настройки это зависит от другого предпочтения (например,
CheckBoxPreference)? таким образом, пользователь может редактировать эти настройки, только если он включил эту функцию первым.
Я просмотрел всю документацию, но нет никакого примера использования PreferenceActivity, кроме простого добавления предпочтений из XML.
, пожалуйста, попытайтесь ответить на любой мой вопрос.
Кстати:
Я развиваюсь для Android 1.6 так что все новые PreferenceFragment не могут быть использованы.
1 ответ:
Как я могу зарегистрировать свой BroadcastReciever, чтобы слушать изменения в моих предпочтениях?
Если
BroadcastReceiverзарегистрировано в манифесте, вы не будете слушать изменения в ваших предпочтениях, потому чтоBroadcastReceiverбудет только в течение миллисекунд. Просто прочитайте последние значения в duringonReceive().Если
BroadcastReceiverзарегистрирован каким-либо другим компонентом, вызывающимregisterReceiver(), Этот компонент может зарегистрироватьOnSharedPreferenceChangeListenerс помощьюSharedPreferences, полученного черезPreferenceManagerиgetDefaultSharedPreferences().Его похоже, что контекст приемника широковещания не совпадает с активностью, поэтому я не регистрирую правильные SharedPreferences, потому что я не перехватываю эти изменения.
, что приговор не имеет смысла.
Как я действую в своей предпочтительной активности при изменении предпочтений?
Зарегистрируйте
OnSharedPreferenceChangeListenerс помощьюSharedPreferences, полученных черезPreferenceManagerиgetDefaultSharedPreferences().Вы можете зарегистрироватьКак изменить пользовательский интерфейс PreferenceActivity, соответствующий изменения в предпочтениях?
OnSharedPreferenceChangeListenerс помощьюSharedPreferences, полученного черезPreferenceManagerиgetDefaultSharedPreferences(). Оттуда вы можете получитьPreferenceот вашегоPreferenceActivityчерезfindPreference()и приспособиться к нему.Как включить или отключить некоторые параметры, зависящие от других параметров (например, CheckBoxPreference)? таким образом, пользователь может редактировать эти настройки, только если он включил эту функцию первым.
Добавьте
android:dependencyв свой XML-файл предпочтений по мере необходимости.