Урок 111. Android 3. Fragments. PreferenceFragment - настройки. Headers

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 111. Android 3. Fragments. PreferenceFragment - настройки. Headers

Сообщение damager82 » 28 окт 2012, 23:00

В этом уроке:
- работаем с PreferenceFragment
- используем Headers 


Click here to read this article!
Последний раз редактировалось damager82 25 май 2017, 13:34, всего редактировалось 9 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

vovaxo
Сообщения: 2
Зарегистрирован: 29 окт 2012, 22:39

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение vovaxo » 29 окт 2012, 22:42

Есть какой то способ использование PreferenceFragment в меньших версиях (Target Version) адроид??

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение damager82 » 30 окт 2012, 13:36

vovaxo писал(а):Есть какой то способ использование PreferenceFragment в меньших версиях (Target Version) адроид??
Похоже, что пока нет - http://developer.android.com/tools/extr ... html#Using
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение rezak90 » 30 окт 2012, 14:50

PreferencesActivity есть
R.id.team
Политика на форуме запрещена

fastwow
Сообщения: 4
Зарегистрирован: 11 авг 2012, 14:56

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение fastwow » 30 окт 2012, 15:58

vovaxo, есть, support library 4 это делает, скачай самый новый ADT, там уже автоматически добавляет эту библиотеку в проект

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение damager82 » 30 окт 2012, 17:49

fastwow писал(а):vovaxo, есть, support library 4 это делает, скачай самый новый ADT, там уже автоматически добавляет эту библиотеку в проект
В каком пакете этой библиотеки находится класс PreferenceFragment?
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

gusarov_roman
Сообщения: 1
Зарегистрирован: 20 ноя 2012, 20:19

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение gusarov_roman » 20 ноя 2012, 20:26

В посте после строк "Если запустить это же приложение на планшете с Android 3.2, оно будет выглядеть так" показан скриншот с интересной темой.
Такая тема присутствует на девайсе Samsung Galaxy Tab в его настройках.
Подскажите пожалуйста, а то сколько тем перелопатил, не нашел такой же в стандартных themes.xml.
Нужна именно такая тема, где правый фрагмент стрелкой перекрывает левый. Буду очень благодарен за ответ..

dmvstar
Сообщения: 1
Зарегистрирован: 15 фев 2013, 10:49

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение dmvstar » 20 фев 2013, 12:47

А каким образом сделать, чтобы после активации третьего заголовка, на котором заявлены android.settings.DISPLAY_SETTINGS, по нажатии "возврат" активировался первый заголовок?
Получается, что при нажатии возврат видно содержимое первого заголовка а активен третий.

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение neoksi » 25 мар 2013, 01:13

Я с PreferenceFragment одного понять не могу, в каком методе расположить чтение в Preference свежих настроек из БД?
Просто onCreate у нас выполняется единожды перед отображением фрагмента, но если на фрагмент вернулись, как освежить данные, что лежат в Preference?

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение neoksi » 28 мар 2013, 20:46

neoksi писал(а):Я с PreferenceFragment одного понять не могу, в каком методе расположить чтение в Preference свежих настроек из БД?
Просто onCreate у нас выполняется единожды перед отображением фрагмента, но если на фрагмент вернулись, как освежить данные, что лежат в Preference?
Сам спросил, сам ответил :)

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

Menos
Сообщения: 2
Зарегистрирован: 17 янв 2013, 22:02

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение Menos » 04 май 2013, 10:01

А можно получить исходники этого урока?
У меня после последнего изменения MainActivity просто начинает вылетать программа.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение damager82 » 13 май 2013, 12:27

Menos писал(а):А можно получить исходники этого урока?
У меня после последнего изменения MainActivity просто начинает вылетать программа.
А логи что говорят? В какой строке и какая ошибка?
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Prospekt
Сообщения: 41
Зарегистрирован: 30 май 2012, 23:06

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение Prospekt » 06 июн 2013, 12:31

Эклипс отказывается принимать наследника от PreferenceFragment с измененным консруктором, ему видители нужен пустой конструктор, да и простым внутренним классом его не сделаешь (не статик). Объясните мне зачем это сделано, нафига так коряво уродывать архитектуру.

Хочется руки пообрубать разработчикам за подобное. Насколько все раньше просто было с PreferenceActivity, а теперь эти фрагменты понасували. Такое ощущение, что скоро нажно будет чуть ли не для единицы писать адаптор. Гениальности (лаконичности и красоты) в java и андройде все меньше и меньше.

Prospekt
Сообщения: 41
Зарегистрирован: 30 май 2012, 23:06

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение Prospekt » 06 июн 2013, 14:46

Причем все работает хорошо в версиях до 15-й включительно, а уже с 16 начинает требовать пустой конструктор.


Prospekt
Сообщения: 41
Зарегистрирован: 30 май 2012, 23:06

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение Prospekt » 06 июн 2013, 15:34

Да, оно. Жалко за такие уродства нельзя разработчикам минусы поставить.
Если нужна возможность повторного запуска, то надо в аргументах
getFragmentManager().beginTransaction().replace(...)
передавать не сам объект, а фабрику, или на худой конец сам класс(*.class), по которому можно создать объект.
Или уже в сам PreferencesFragment добавлять метод, возвращающий новый чистый класс.

А так не красиво, очень не красиво.

Тогда вопрос. У PreferencesFragment

Код: Выделить всё

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
                ...
	}

	public void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
                ....
	}
Для каждого PreferencesFragment свой Bungle? Или он общий? Ну, что будет, если есть одновременно 2 объекта одного и того же класса. Один перезапишет (потрет) данные другого(если Бангл общий)?

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

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение Mikhail_dev » 06 июн 2013, 22:16

Я только начал разбираться с фрагментами, поэтому могу быть неточен, но думаю что один фрагмент дважды создать нельзя, по крайней мере в одном контейнере (в двух наверняка можно). Поэтому если дело касается одного контейнера, то там вообще один объект, значит и объект bundle будет один. А если вы попробуете добавить второй (к комментарию затрется он или нет), то вылезет ошибка, что-то типа "... already exists...".

argamidon
Сообщения: 6
Зарегистрирован: 28 окт 2013, 11:13

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение argamidon » 28 окт 2013, 11:35

не особо понимаю как пользоваться PreferenceFragment вместе с обычным окном(допустим MainActivity). вопрос вызывает то как вызвать PreferenceFragment из MainActivity? в статье написано что пользоваться PreferenceFragment нужно также как и PreferenceActivity. Проблем с изучением PreferenceActivity не возникало, там всё просто - в MainActivity получил DefaultSharedPrefs, и запускай через Intnet PreferenceActivtiy... Однако как поступать с фрагментами непонимаю. Вижу два выхода:
1) при клике на определенную кнопочку нужно создавать отдельное новое Активити (унаследованное от Activity) и ему назначать в качестве контента PrefereceFragment.
2) при клике на кнопку новое Активити не создавать, а скрывать текущий контент и зaменять его методом FragmentTransaction.replace на новый PreferenceFragment. но этот способ правда сработает если в вызвавшей Активности в конейнере отсутствуют элементы View.

...
так вот. как мне быть ? каким способом пользоваться? может быть есть ещё способы ?

Wp8Lover
Сообщения: 5
Зарегистрирован: 27 окт 2013, 13:05

Re: Урок 111. Android 3. Fragment

Сообщение Wp8Lover » 28 окт 2013, 12:47

1) Так точно пользуются, на форуме уже была ссылка на статью http://android-er.blogspot.ru/2012/07/e ... gment.html
Я, если честно, не догоняю в чем преимущество использования фрагментов. Так же мне непонятно как управлять доступностью настроек, допустим, у меня есть настройка включающая некий режим при котором используются дополнительные настройки и пока галочка отвечающая за этот режим снята соответственно и редактирование этих полей недоступно и наоборот.
Также я не могу добиться, чтобы значения настроек выводились сразу на экран вместо Title и Summary.

argamidon
Сообщения: 6
Зарегистрирован: 28 окт 2013, 11:13

Re: Урок 111. Android 3. Fragments. PreferenceFragment - нас

Сообщение argamidon » 28 окт 2013, 13:32

понятно. тогда зачем нужен этот PreferenceFragment? если можно сразу но нажатию на кнопку запустить PrefenceActivity минуя фрагмент ?

Ответить