Урок 110. Android 3. Fragments. DialogFragment - диалог
Урок 110. Android 3. Fragments. DialogFragment - диалог
В этом уроке:
- работаем с DialogFragment
Click here to read this article!
- работаем с DialogFragment
Click here to read this article!
Последний раз редактировалось damager82 23 май 2017, 22:12, всего редактировалось 6 раз.
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Сообщения про папки и картинки перенесены сюда: viewtopic.php?f=33&t=1291
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Можете подсказать как передать значение переменной из одного DialogFragment в другой....Делала на основе вашего примера, у меня тест который собирает баллы. Через Intent не получается. Чего я не вижу?
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Используйте setArguments для передачи данных в фрагмент, и getArguments для чтения.katrin писал(а):Можете подсказать как передать значение переменной из одного DialogFragment в другой....Делала на основе вашего примера, у меня тест который собирает баллы. Через Intent не получается. Чего я не вижу?
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Да спасибо, продвинулась, всё получилось А теперь как вернуть результат из fragment в основное MainActivity
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Забейте на мой вопрос, я решила отказаться от Fragment. Сделать через обычный Activity, иначе куда ни кинь всюду клин. Всем спасибо.
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Имеется Fragment, на котором расположена кнопка, при нажатии на неё запускается DialogFragment.
Как сделать, чтобы при закрытии DialogFragment, срабатывало onResume для Fragment, или же чтоб запустилась как нибудь функция в Fragment, которая бы обновляла его содержимое?
Например, в стандартном примере:
при нажатии на кнопку ОК сработает функция doPositiveClick() в активити, с которого запускался диалог, а как быть если диалог запускался с фрагмента?
Как сделать, чтобы при закрытии 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();
}
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Пожалуйста, объясните, где-то я не догоняю. Почему любые диалоги, которые я делаю - не модальные? Пробую создать диалог ввода пароля в программу - жмешь в любое место, кроме диалогового окошка - он исчезает. Я где-то не поставила нужную "галочку"?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
конечно, если через стили то:Olivka писал(а):Пожалуйста, объясните, где-то я не догоняю. Почему любые диалоги, которые я делаю - не модальные? Пробую создать диалог ввода пароля в программу - жмешь в любое место, кроме диалогового окошка - он исчезает. Я где-то не поставила нужную "галочку"?
Код: Выделить всё
<item name="android:windowCloseOnTouchOutside">false</item>
Код: Выделить всё
setCanceledOnTouchOutside(boolean cancel)
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Огромное спасибо! вы просто меня спасли..
Еще вопрос:
Я не пойму от чего зависит следующее. На активити или диалогефрагменте допустим есть поле ввода текста. Иногда у меня при вызове активити сразу же фокус перемещается в это поле и выскакивает клавиатура, а иногда просто без клавиатуры.
Я делаю в редакторе xml допустим так:
Я думала, что слово <requestFocus /> это и есть вызов клавы автоматом, т.к. поле долждно получать фокус, но нет, этого не происходит..
Опять, наверняка, не знаю про какую-нибудь галочку.
Еще вопрос:
Я не пойму от чего зависит следующее. На активити или диалогефрагменте допустим есть поле ввода текста. Иногда у меня при вызове активити сразу же фокус перемещается в это поле и выскакивает клавиатура, а иногда просто без клавиатуры.
Я делаю в редакторе xml допустим так:
Код: Выделить всё
<EditText
android:id="@+id/edPswrd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" >
<requestFocus />
</EditText>
Опять, наверняка, не знаю про какую-нибудь галочку.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Код: Выделить всё
android:focusable="false"
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Так это куда писать-то? у меня вообще-то есть диалог-фрагмент, там же нету вьюхи
А зачем тогда <requestFocus />?
я не очень поняла
А зачем тогда <requestFocus />?
я не очень поняла
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
<requestFocus /> это получить фоку текущей вьюшке, если же не хотите что бы она получала задайте атрибут edittext'y который я указал
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
ура, работает! спасибо!!
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Ситуация следующая:
Передаю в конструктор моего DialogFragment одним из параметров lissener. При повороте экрана lissener не сохранить. Есть ли механизм у фрагментов позволяющий lissener вынести за скобку? И как им воспользоваться?
Передаю в конструктор моего DialogFragment одним из параметров lissener. При повороте экрана lissener не сохранить. Есть ли механизм у фрагментов позволяющий lissener вынести за скобку? И как им воспользоваться?
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
параметр или Bundle?neoksi писал(а):Ситуация следующая:
Передаю в конструктор моего DialogFragment одним из параметров lissener. При повороте экрана lissener не сохранить. Есть ли механизм у фрагментов позволяющий lissener вынести за скобку? И как им воспользоваться?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
lissener - это реализация интефейса.Olivka писал(а):параметр или Bundle?neoksi писал(а):Ситуация следующая:
Передаю в конструктор моего DialogFragment одним из параметров lissener. При повороте экрана lissener не сохранить. Есть ли механизм у фрагментов позволяющий lissener вынести за скобку? И как им воспользоваться?
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
из этих слов я так и не смог собрать все мысли воедино, осталось только Что?Где?Когда?neoksi писал(а):Ситуация следующая:
Передаю в конструктор моего DialogFragment одним из параметров lissener. При повороте экрана lissener не сохранить. Есть ли механизм у фрагментов позволяющий lissener вынести за скобку? И как им воспользоваться?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 110. Android 3. Fragments. DialogFragment - диалог
Ладно, попробую по пунктам:
1) Создаю свой DialogFragment, к примеру SelectItemDialogFragment.
2) При создании sidf = new SelectItemDialogFragment(.... , new SelectItemDialogFragment.itemOnClickLissener(){ переопределенный метод }), одним из параметров передаю lissener (метод обратного вызова, реализация интерфейса).
3) Диалог отображается. Телефон при этом у меня в портретном режиме.
4) Поворачиваю телефон в land ориентацию.
5) Фрагмент запоминает все параметры для персоздания, но lissener я сохранить в Bundle не могу.
6) Активити пересоздается и создает все фрагменты, в том числе и диалог.
7) Диалог остался без реализации lissener, на его месте будет null.
Вопрос: как реализовать связь DialogFragment и метода в основной активности? Чтоб она сохранялась при пересоздании активити.
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 - диалог
А.... Listener )))) извини, не поняла твое слово сразу
прикольно. надо свои диалоги повращать.
прикольно. надо свои диалоги повращать.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198