Объясните основы PreferenceFragment.....

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
MrBAD
Сообщения: 15
Зарегистрирован: 17 авг 2015, 13:01

Объясните основы PreferenceFragment.....

Сообщение MrBAD » 08 сен 2015, 10:13

Прошу помощи, объясните основы PreferenceFragment.

Есть приложение основанное на фрагментах. В нем настройки базирующиеся на PreferenceFragment. Все работает, настройки сохраняются(где то).
Как мне из главного окна (или других фрагментов) программно получить данные/изменить данные в PreferenceFragment не вызывая его View?

Через PreferenceManager? Если можно пример "чтения и записи", буквально пару строк. Или ссылку на пример.

Или существуют другие более правильные способы работы с глобальными данными для всего приложения?

Спасибо!

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Объясните основы PreferenceFragment.....

Сообщение doter.ua » 08 сен 2015, 10:23

SharedPreferences
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

MrBAD
Сообщения: 15
Зарегистрирован: 17 авг 2015, 13:01

Re: Объясните основы PreferenceFragment.....

Сообщение MrBAD » 08 сен 2015, 15:19

doter.ua писал(а):SharedPreferences
и самостоятельно создавать View для управления ими?

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Объясните основы PreferenceFragment.....

Сообщение Mikhail_dev » 08 сен 2015, 17:59

Да. Ими как бы управлять проще простого. В уроках это есть

MrBAD
Сообщения: 15
Зарегистрирован: 17 авг 2015, 13:01

Re: Объясните основы PreferenceFragment.....

Сообщение MrBAD » 08 сен 2015, 21:06

Mikhail_dev писал(а):Да. Ими как бы управлять проще простого. В уроках это есть
В уроках даны примеры доступа к View элементам фрагментов когда Fragment активны и на экране. Это понятно.

Мне же надо, что бы PreferenceFragment выполнял свою работу по визуализации настроек для пользователя приложения. И в то же время к нему (данным) хотелось бы иметь доступ когда запускается главное активити, когда работают другие фрагменты, а этот фрагмент еще не создан - как к глобальным переменным.

Не думал что Гугл создал этот класс как вещь в себе :lol:.
И не нравится мне идея переписывать все необходимые мне настройки в/из глобальных переменных описанных в главном окне.... :cry: при старте и остановке PreferenceFragment.

Что то тут не так.

MrBAD
Сообщения: 15
Зарегистрирован: 17 авг 2015, 13:01

Re: Объясните основы PreferenceFragment.....

Сообщение MrBAD » 09 сен 2015, 10:34

MrBAD писал(а):Прошу помощи, объясните основы PreferenceFragment.
Кому интересно получилось чтение:
  • SharedPreferences sPref = PreferenceManager.getDefaultSharedPreferences(this);
    // очистка хранилища на этапе разработки
    // sPref.edit().clear().commit();

    // получаем данные из хранилища
    try { def_long = Double.parseDouble(sPref.getString("map_info_long", "57.823495")); } catch (NumberFormatException nfe) {}
    try { def_latt = Double.parseDouble(sPref.getString("map_info_latt", "28.327925")); } catch (NumberFormatException nfe) {}
    try { def_zoom = Float.parseFloat(sPref.getString( "map_info_zoom", "12")); } catch (NumberFormatException nfe) {}
Запись значение в хранилище:
  • SharedPreferences sPref = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor edit = sPref.edit();

    edit.putString("map_info_zoom",String.valueOf(def_zoom));
    edit.putString("map_info_latt", String.valueOf(def_latt));
    edit.putString("map_info_long", String.valueOf(def_long));
    edit.commit();

Ответить