Callback фрагментов

Интерфейс, диалоги, темы, стили, меню
Ответить
popoc
Сообщения: 12
Зарегистрирован: 16 апр 2016, 13:55

Callback фрагментов

Сообщение popoc » 16 апр 2016, 14:06

День добрый.

Не совсем понимаю механизм работы коллбэков.
Может кто-нибудь проиллюстрировать на конкретном примере?

Допустим, есть у меня главная активити, внутри фрагмент с текстовым полем. По нажатию кнопки происходит замена данных во врагменте (ставится другой текст).

Как я понимаю, нужно на кнопку прикрепить коллбэк к активити, а она будет его обрабатывать - заменять фрагмент на такой-же, но с другими объектами.

Как это сделать?

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

Re: Callback фрагментов

Сообщение Mikhail_dev » 16 апр 2016, 14:29

По нажатию кнопки происходит замена данных во врагменте (ставится другой текст).
Если обработка данных идёт внутри фрагмента, то внутри фрагмента всё и делать. Коллбеки нужны для связи с активностью, чтобы запрашивать у ней какие-то данные, при этом даже не знать что это за активити (ибо коллбек = интерфейс)

popoc
Сообщения: 12
Зарегистрирован: 16 апр 2016, 13:55

Re: Callback фрагментов

Сообщение popoc » 16 апр 2016, 14:55

Mikhail_dev,

а есть тогда смысл в фрагментах в данном случае?

Может, будет проще менять данные в самой активити без использования фрагментов? Или есть какие-то подводные камни?

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

Re: Callback фрагментов

Сообщение Mikhail_dev » 16 апр 2016, 15:33

Фрагменты созданы для того, чтобы разделять какую-либо логику, а также для переиспользования кода. К примеру на одной активити можно располагать множество фрагментов. ОДин и тот же фрагмент можно внедрять в любую активити. Фрагменты также помогают работать с анимацией, и очень серьёзно. К примеру NavigationDrawer - это фрагмент. Можете еще скачать приложение Pinterest. Посмотрите как там плавно делаются переходы между экранами. Это тоже фрагменты. Как я понял, они на одной активити.
Можно сделать и посредством активити. Фрагменты просто дополнительный удобный инструмент.

Ответить