Страница 1 из 5
Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 17 окт 2012, 23:00
damager82
В этом уроке:
- работаем с DialogFragment
Click here to read this article!
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 23 окт 2012, 17:54
damager82
Сообщения про папки и картинки перенесены сюда:
viewtopic.php?f=33&t=1291
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 21 ноя 2012, 00:41
katrin
Можете подсказать как передать значение переменной из одного DialogFragment в другой....Делала на основе вашего примера, у меня тест который собирает баллы. Через Intent не получается. Чего я не вижу?
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 21 ноя 2012, 10:03
damager82
katrin писал(а):Можете подсказать как передать значение переменной из одного DialogFragment в другой....Делала на основе вашего примера, у меня тест который собирает баллы. Через Intent не получается. Чего я не вижу?
Используйте setArguments для передачи данных в фрагмент, и getArguments для чтения.
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 22 ноя 2012, 20:15
katrin
Да спасибо, продвинулась, всё получилось А теперь как вернуть результат из fragment в основное MainActivity
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 23 ноя 2012, 01:46
katrin
Забейте на мой вопрос, я решила отказаться от Fragment. Сделать через обычный Activity, иначе куда ни кинь всюду клин. Всем спасибо.
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 11 дек 2012, 09:55
arreke
Имеется Fragment, на котором расположена кнопка, при нажатии на неё запускается DialogFragment.
Как сделать, чтобы при закрытии DialogFragment, срабатывало onResume для Fragment, или же чтоб запустилась как нибудь функция в Fragment, которая бы обновляла его содержимое?
Например, в стандартном примере:
Код: Выделить всё
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.alert_dialog_icon)
.setTitle("Title")
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doPositiveClick();
}
}
)
.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doNegativeClick();
}
}
)
.create();
}
при нажатии на кнопку ОК сработает функция doPositiveClick() в активити, с которого запускался диалог, а как быть если диалог запускался с фрагмента?
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 05 фев 2013, 15:16
Foenix
Пожалуйста, объясните, где-то я не догоняю. Почему любые диалоги, которые я делаю - не модальные? Пробую создать диалог ввода пароля в программу - жмешь в любое место, кроме диалогового окошка - он исчезает. Я где-то не поставила нужную "галочку"?
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 05 фев 2013, 18:59
rezak90
Olivka писал(а):Пожалуйста, объясните, где-то я не догоняю. Почему любые диалоги, которые я делаю - не модальные? Пробую создать диалог ввода пароля в программу - жмешь в любое место, кроме диалогового окошка - он исчезает. Я где-то не поставила нужную "галочку"?
конечно, если через стили то:
Код: Выделить всё
<item name="android:windowCloseOnTouchOutside">false</item>
если через код, то метод:
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 07 фев 2013, 17:55
Foenix
Огромное спасибо! вы просто меня спасли..
Еще вопрос:
Я не пойму от чего зависит следующее. На активити или диалогефрагменте допустим есть поле ввода текста. Иногда у меня при вызове активити сразу же фокус перемещается в это поле и выскакивает клавиатура, а иногда просто без клавиатуры.
Я делаю в редакторе xml допустим так:
Код: Выделить всё
<EditText
android:id="@+id/edPswrd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" >
<requestFocus />
</EditText>
Я думала, что слово <requestFocus /> это и есть вызов клавы автоматом, т.к. поле долждно получать фокус, но нет, этого не происходит..
Опять, наверняка, не знаю про какую-нибудь галочку.
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 07 фев 2013, 21:27
rezak90
что бы вьюха не получала фокус при инициализации
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 07 фев 2013, 22:02
Foenix
Так это куда писать-то? у меня вообще-то есть диалог-фрагмент, там же нету вьюхи
А зачем тогда <requestFocus />?
я не очень поняла
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 07 фев 2013, 23:03
rezak90
<requestFocus /> это получить фоку текущей вьюшке, если же не хотите что бы она получала задайте атрибут edittext'y который я указал
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 07 фев 2013, 23:48
Foenix
ура, работает! спасибо!!
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 09 апр 2013, 17:47
neoksi
Ситуация следующая:
Передаю в конструктор моего DialogFragment одним из параметров lissener. При повороте экрана lissener не сохранить. Есть ли механизм у фрагментов позволяющий lissener вынести за скобку? И как им воспользоваться?
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 09 апр 2013, 18:29
Foenix
neoksi писал(а):Ситуация следующая:
Передаю в конструктор моего DialogFragment одним из параметров lissener. При повороте экрана lissener не сохранить. Есть ли механизм у фрагментов позволяющий lissener вынести за скобку? И как им воспользоваться?
параметр или Bundle?
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 09 апр 2013, 18:47
neoksi
Olivka писал(а):neoksi писал(а):Ситуация следующая:
Передаю в конструктор моего DialogFragment одним из параметров lissener. При повороте экрана lissener не сохранить. Есть ли механизм у фрагментов позволяющий lissener вынести за скобку? И как им воспользоваться?
параметр или Bundle?
lissener - это реализация интефейса.
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 09 апр 2013, 20:53
rezak90
neoksi писал(а):Ситуация следующая:
Передаю в конструктор моего DialogFragment одним из параметров lissener. При повороте экрана lissener не сохранить. Есть ли механизм у фрагментов позволяющий lissener вынести за скобку? И как им воспользоваться?
из этих слов я так и не смог собрать все мысли воедино, осталось только Что?Где?Когда?
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 09 апр 2013, 21:17
neoksi
Ладно, попробую по пунктам:
1) Создаю свой DialogFragment, к примеру SelectItemDialogFragment.
2) При создании sidf = new SelectItemDialogFragment(.... , new SelectItemDialogFragment.itemOnClickLissener(){ переопределенный метод }), одним из параметров передаю lissener (метод обратного вызова, реализация интерфейса).
3) Диалог отображается. Телефон при этом у меня в портретном режиме.
4) Поворачиваю телефон в land ориентацию.
5) Фрагмент запоминает все параметры для персоздания, но lissener я сохранить в Bundle не могу.
6) Активити пересоздается и создает все фрагменты, в том числе и диалог.
7) Диалог остался без реализации lissener, на его месте будет null.
Вопрос: как реализовать связь DialogFragment и метода в основной активности? Чтоб она сохранялась при пересоздании активити.
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Добавлено: 09 апр 2013, 22:37
Foenix
А.... Listener )))) извини, не поняла твое слово сразу
прикольно. надо свои диалоги повращать.