могу взять данные и диалога, оттуда отправляю так
setFragmentResult(
FRAGMENT_RESULT_KEY,
bundleOf(
FRAGMENT_RESULT_CHOSEN_SIZE to TextSizeOption.LARGE.size,
)
)
и хочу взять в кастом вью
init {
initView()
findViewTreeLifecycleOwner()?.let {
(context as? FragmentActivity)?.supportFragmentManager?.setFragmentResultListener(
AnnotationTextSizeDialogFragment.FRAGMENT_RESULT_KEY,
it
) { _, bundle ->
val getTextSize = bundle.getFloat(AnnotationTextSizeDialogFragment.FRAGMENT_RESULT_CHOSEN_SIZE)
Timber.tag("getTextSize").d("$getTextSize")
binding.inputEditText.setUpTextSize(getTextSize)
}
}
}
нечитабильно. сделай скрин лучше
Что за каша...
Если результат устанавливается и слушается на разных fragment manager, то естественно, результат никто не получит.
а в кастомном вью как могу правильно взять?
а по клику на позитив батон никак?? https://yandex.ru/search/?text=get+dialog+result+android&lr=43&clid=2270455&win=295
Без разницы где. Нужно сначала убедиться, что используются одинаковые fragment managers. Их несколко разных. Иначе может получиться так, что вы результат устанавливаете в одном, а слушаете в другом. Ну и вот.
понял, спасибо, посмотрю.
Диалог тоже кастомный. устанавливает
как то сложно все... У меня вот такой пример. Без всяких лайфсайклоунеров и фрагмент менеджеров. Все просто
В LiveData.value залезать снаружи VM? Фу так делать!
ГДЕ? о_О Аа увидил
viewModel.pointLiveData.value LiveData вообще не для хранения данных, а только для того, чтобы однажды просигналить куда-то наружу.
Коорутины не лучше?
да это учебный проект отковырял. Я так уже давно не делаю :D и лайвдату даже не юзаю )
Не ну тут я бы поспорил. Это по сути тоже самое как стейты нынче модные, а там данные хранятся
Тут не про то, что лучше. А про инкапсуляцию.
https://developer.android.com/guide/fragments/communicate Короче докрути страничку до Get results using the Fragment Result API
Народ часто использует разные fragment manager и у них "не работает".
Точно! Вспомнил. Тоже сталкивался. есть такой момент
Обсуждают сегодня