Size: a a a

Moxy – MVP библиотека под Android

2018 April 21

SB

Stas Bushuk in Moxy – MVP библиотека под Android
Назар Кохан
В onCreate проверяешь bundle на пустоту?
при первом заходе тогда новые данные не приходят.
источник

НК

Назар Кохан in Moxy – MVP библиотека под Android
Stas Bushuk
при первом заходе тогда новые данные не приходят.
ну если null только тогда грузи
источник
2018 April 23

P▽

Picty ▽ in Moxy – MVP библиотека под Android
подскажите пожалуйста:
companion object {
       fun newInstance(data: MyFragmentData):MyFragment{
           val fragment = MyFragment()
           fragment.presenter.setMyData(data)

           return fragment
       }
   }
@InjectPresenter
lateinit var presenter: MyPresenter


*передать так данные презентеру не получится, потому как презентер НЕ инициализирован ещё

Как можно передать данные презентеру, чтобы данные не хранить их в самом фрагменте?

Спасибо!
источник

AS

Abdullo Shukurov in Moxy – MVP библиотека под Android
источник

AS

Abdullo Shukurov in Moxy – MVP библиотека под Android
Picty ▽
подскажите пожалуйста:
companion object {
       fun newInstance(data: MyFragmentData):MyFragment{
           val fragment = MyFragment()
           fragment.presenter.setMyData(data)

           return fragment
       }
   }
@InjectPresenter
lateinit var presenter: MyPresenter


*передать так данные презентеру не получится, потому как презентер НЕ инициализирован ещё

Как можно передать данные презентеру, чтобы данные не хранить их в самом фрагменте?

Спасибо!
👆
источник

DM

Dmitriy Mitrofanov in Moxy – MVP библиотека под Android
Picty ▽
подскажите пожалуйста:
companion object {
       fun newInstance(data: MyFragmentData):MyFragment{
           val fragment = MyFragment()
           fragment.presenter.setMyData(data)

           return fragment
       }
   }
@InjectPresenter
lateinit var presenter: MyPresenter


*передать так данные презентеру не получится, потому как презентер НЕ инициализирован ещё

Как можно передать данные презентеру, чтобы данные не хранить их в самом фрагменте?

Спасибо!
Оттуда, откуда хотите передать данные сохраняете их где-нибудь через интерактор.
Потом в презентере в onAttachView вытаскиваете.
источник

P▽

Picty ▽ in Moxy – MVP библиотека под Android
но ведь их нужно до этого где-то сохранить - в бандл например обернуть. не знаю насколько хорошо будет в бандл большие куски данных оборачивать.
источник

P▽

Picty ▽ in Moxy – MVP библиотека под Android
Dmitriy Mitrofanov
Оттуда, откуда хотите передать данные сохраняете их где-нибудь через интерактор.
Потом в презентере в onAttachView вытаскиваете.
да, этот вариант есть у меня - просто думал, что можно всё же фрагменту конкретно прокидывать, а не тянуть из хранилища тапнутый пункт
источник

AS

Abdullo Shukurov in Moxy – MVP библиотека под Android
Picty ▽
да, этот вариант есть у меня - просто думал, что можно всё же фрагменту конкретно прокидывать, а не тянуть из хранилища тапнутый пункт
Смотря какие данные у тебя, ну покра нимеры bundle хорошо справляется сo своей задачей
источник

P▽

Picty ▽ in Moxy – MVP библиотека под Android
@dev_app
Объект на основе JSON
С полями и списками внутри
источник

P▽

Picty ▽ in Moxy – MVP библиотека под Android
Я верно понял, что по сути или бандл или хранилище?
источник

KD

Konstantin Dovnar in Moxy – MVP библиотека под Android
Picty ▽
да, этот вариант есть у меня - просто думал, что можно всё же фрагменту конкретно прокидывать, а не тянуть из хранилища тапнутый пункт
Скинули же ссылку с решением этой проблемы.
источник

S

Sergey8827 in Moxy – MVP библиотека под Android
Сам юзаю активно МОКСИ
вот кидаю свой пример на гитхабе
источник

S

Sergey8827 in Moxy – MVP библиотека под Android
Привет гайз!
Создал репозиторий с своим примером МВП
там короче и реактивщина и даггер и короче все интересное
Прошу заценить
https://github.com/SergeyBurlaka/Android-Etsyclient-Mvp-Moxy-UnitTesting-mockito-DependencyInjection-Dagger2-rxJava2-RestApi-Retrofit
источник

P▽

Picty ▽ in Moxy – MVP библиотека под Android
Konstantin Dovnar
Скинули же ссылку с решением этой проблемы.
Если я не ошибаюсь, то:
https://github.com/Arello-Mobile/Moxy/wiki/Custom-Presenter-constuructor

Это всего лишь переопределение метода создания презентера, НО то же самое можно сделать через Bundle - положив в него данные при создании фрагмента, и потом в onCreate достать их и передать в уже созданный презентер.

Да, при provideDetailsPresenter() мы передаем данные в конструктор, а не ждем вызова сеттера, но в общем система одна и та же.

Или я ошибаюсь?)
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
provideDetailsPresenter вызовется только 1 раз
источник

KD

Konstantin Dovnar in Moxy – MVP библиотека под Android
Picty ▽
Если я не ошибаюсь, то:
https://github.com/Arello-Mobile/Moxy/wiki/Custom-Presenter-constuructor

Это всего лишь переопределение метода создания презентера, НО то же самое можно сделать через Bundle - положив в него данные при создании фрагмента, и потом в onCreate достать их и передать в уже созданный презентер.

Да, при provideDetailsPresenter() мы передаем данные в конструктор, а не ждем вызова сеттера, но в общем система одна и та же.

Или я ошибаюсь?)
Тогда и инжект презентера теряет смысл. А то надо и инжектнуть не забыть, и данные прокинуть. А так сам переопределяешь его создание так как надо
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
а сеттер будет вызываться каждый раз при пересзодании активти/фрагмента
источник

KD

Konstantin Dovnar in Moxy – MVP библиотека под Android
Какое-то сильное разделение одной задачи выйдет, имхо
источник

P▽

Picty ▽ in Moxy – MVP библиотека под Android
@Vorkytaka @senneco спасибо за ответы! Тут суть такова что задача в том, что в ресайкле тапнули на пункт - и у этого пункта есть объект с данными - задача банальная, но вот как это красиво сделать - в плане передачи этих данных фрагменту...
С учетом того, что в этом фрагменте ещё ViewPager и там ещё 2 фрагмента хотят данных из данных нажатого пункта.

Варианты как понял:
1) Bundle при создании фрагмента;
2) Слой данных и дергать через репу;
3) Переопределение презентера.

Что выбрать?))
источник