Страница 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 выполнял свою работу по визуализации настроек для пользователя приложения. И в то же время к нему (данным) хотелось бы иметь доступ когда запускается главное активити, когда работают другие фрагменты, а этот фрагмент еще не создан - как к глобальным переменным.
Не думал что Гугл создал этот класс как вещь в себе

.
И не нравится мне идея переписывать все необходимые мне настройки в/из глобальных переменных описанных в главном окне....

при старте и остановке 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();