Size: a a a

Android Developers

2020 April 23

a

awawa in Android Developers
Ребят, объясните плиз где я тут туплю. У меня в активити есть интерфейс OnServiceStateChangedListener и методы set... и remove... соответственно для установки и удаления этого листенера. В фрагменте, в методе onResume я этот интерфейс имплементирую и устанавливаю методом set... в активити, в методе onPause делаю remove.... Вот при создании активити и создании фрагмента первый раз, всё подключается и всё работает. Но когда я перехожу на другой фрагмент и возвращаюсь на этот обратно, фрагмент пересоздается. Все методы как надо вызываются, но когда пытаюсь достучаться до листенера потом он почему-то становится нулом, хотя в методе set.. я проверяю на нулл и там всё ок. Как такое получается?
источник

ЯН

Ярослав Нестеров... in Android Developers
awawa
Ребят, объясните плиз где я тут туплю. У меня в активити есть интерфейс OnServiceStateChangedListener и методы set... и remove... соответственно для установки и удаления этого листенера. В фрагменте, в методе onResume я этот интерфейс имплементирую и устанавливаю методом set... в активити, в методе onPause делаю remove.... Вот при создании активити и создании фрагмента первый раз, всё подключается и всё работает. Но когда я перехожу на другой фрагмент и возвращаюсь на этот обратно, фрагмент пересоздается. Все методы как надо вызываются, но когда пытаюсь достучаться до листенера потом он почему-то становится нулом, хотя в методе set.. я проверяю на нулл и там всё ок. Как такое получается?
"фрагмент пересоздается"
скорее всего не фрагмент, а вью
источник

ЯН

Ярослав Нестеров... in Android Developers
awawa
Ребят, объясните плиз где я тут туплю. У меня в активити есть интерфейс OnServiceStateChangedListener и методы set... и remove... соответственно для установки и удаления этого листенера. В фрагменте, в методе onResume я этот интерфейс имплементирую и устанавливаю методом set... в активити, в методе onPause делаю remove.... Вот при создании активити и создании фрагмента первый раз, всё подключается и всё работает. Но когда я перехожу на другой фрагмент и возвращаюсь на этот обратно, фрагмент пересоздается. Все методы как надо вызываются, но когда пытаюсь достучаться до листенера потом он почему-то становится нулом, хотя в методе set.. я проверяю на нулл и там всё ок. Как такое получается?
"в методе onResume"
почему не в onCreate?
источник

Kd

Konstantin dmz9 in Android Developers
awawa
Ребят, объясните плиз где я тут туплю. У меня в активити есть интерфейс OnServiceStateChangedListener и методы set... и remove... соответственно для установки и удаления этого листенера. В фрагменте, в методе onResume я этот интерфейс имплементирую и устанавливаю методом set... в активити, в методе onPause делаю remove.... Вот при создании активити и создании фрагмента первый раз, всё подключается и всё работает. Но когда я перехожу на другой фрагмент и возвращаюсь на этот обратно, фрагмент пересоздается. Все методы как надо вызываются, но когда пытаюсь достучаться до листенера потом он почему-то становится нулом, хотя в методе set.. я проверяю на нулл и там всё ок. Как такое получается?
код скинь
источник

a

awawa in Android Developers
Ярослав Нестеров
"фрагмент пересоздается"
скорее всего не фрагмент, а вью
Метод onResume вызывается, метод set... вызывается, в методе set... листенер не нул.
источник

ЯН

Ярослав Нестеров... in Android Developers
awawa
Метод onResume вызывается, метод set... вызывается, в методе set... листенер не нул.
листенер имплементируется или иплементируется то, что его вызывает? давайте код сразу, всего фрагмента, вас (всех как правило) фиг поймёшь)
источник

a

awawa in Android Developers
Ярослав Нестеров
листенер имплементируется или иплементируется то, что его вызывает? давайте код сразу, всего фрагмента, вас (всех как правило) фиг поймёшь)
Вот, как-то так: https://pastebin.com/T1sJbBpd
источник

ЯН

Ярослав Нестеров... in Android Developers
removeStateChangedListener ни от куда не вызывается?
источник

ЯН

Ярослав Нестеров... in Android Developers
в какой момент у тебя выполняется if (stateChangedListener != null)?
залогай вообще все методы типа onCreate onStart onResume onPause onStop onDestroy, для фрагмента ещё и onCreateView onViewCreated onDestroyView. и посмотри, может и сам чё найдёшь
источник

Kd

Konstantin dmz9 in Android Developers
говно какое то.
во первых есть https://developer.android.com/reference/androidx/fragment/app/FragmentManager.FragmentLifecycleCallbacks
в активити в onCreate регистрируешь колбяк
во вторых в колбяке в двух (например) методах, даже пусть onFragmentResumed/onFragmentPaused получаешь фрагмент.
сам фрагмент пусть реализует твой этот интерфейс
получается код будет примерно
onCreate(){
supportfragmentmanager.addLifecycleCallback( cb)
}
cb.onFragmentResumed(f: fragment){
if (f is MySuperInterface) { this@activity.setMySuperListener(f) }
}
cb.onFragmentPaused(f: fragment){
if (f is MySuperInterface) { this@activity.removeMySuperListener(f) }
}
источник

D

Daniil in Android Developers
Привет! Подскажите, как можно сделать всплывающую View относительно элемента, на который кликнули?
источник

ES

Evgeny Shulyakovsky in Android Developers
Подскажите, есть и у кого материалы по верстке экранов, может курс
источник

ЯН

Ярослав Нестеров... in Android Developers
Evgeny Shulyakovsky
Подскажите, есть и у кого материалы по верстке экранов, может курс
источник

ES

Evgeny Shulyakovsky in Android Developers
Содержательно, я хотел услышать более конкретный ответ
источник

Kd

Konstantin dmz9 in Android Developers
Evgeny Shulyakovsky
Содержательно, я хотел услышать более конкретный ответ
наверное каждый андройдер задайется таким вопросом хоть раз, но по итогу ничего не находит.
все разбросано по интернету, кусочками, где то старое и неактуальное, по статьям индусов разных на медиумах и может стартандроидах
источник

ES

Evgeny Shulyakovsky in Android Developers
Может кто-то отважился, записал курс или собрал воедино
источник

ЯН

Ярослав Нестеров... in Android Developers
да чем вам не угодил material.io?
там чёрным по белому как делать хорошо, а как плохо
источник

Kd

Konstantin dmz9 in Android Developers
Ярослав Нестеров
да чем вам не угодил material.io?
там чёрным по белому как делать хорошо, а как плохо
это сайт про то как делать плохо и неудобно
источник

Kd

Konstantin dmz9 in Android Developers
ну и там нет практической части - что писать в хмл или как собирать вьюшки андроида в рантайме, ведь вопрос был об этом )
источник

ES

Evgeny Shulyakovsky in Android Developers
Ярослав Нестеров
да чем вам не угодил material.io?
там чёрным по белому как делать хорошо, а как плохо
Там рассказано как сделать это в xml , как сделать хорошо, какие подходы, как лучше  ?
источник