Страница 1 из 1

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

Добавлено: 08 сен 2015, 10:13
MrBAD
Прошу помощи, объясните основы PreferenceFragment.

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

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

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

Спасибо!

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

Добавлено: 08 сен 2015, 10:23
doter.ua
SharedPreferences

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

Добавлено: 08 сен 2015, 15:19
MrBAD
doter.ua писал(а):SharedPreferences
и самостоятельно создавать View для управления ими?

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

Добавлено: 08 сен 2015, 17:59
Mikhail_dev
Да. Ими как бы управлять проще простого. В уроках это есть

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

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

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

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

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

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

Добавлено: 09 сен 2015, 10:34
MrBAD
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();