Mikhail
что значит "не выходят наружу"? ты после prepareDataList() запускаешь ещё какой-то код который делает что-то со списком?
Artem
Ребята, привет. Надеюсь, кто-нибудь прочитает эту простыню и поможет мне, вы моя последняя надежда, сижу уже 2 дня. Мне нужно заполнить выпадающий список, используя Room и RxJava и MVVM. ViewModel фрагмента выглядит так: fun getData(): Single<List<Kotlin>> { return dataSource.getAll() } В фрагменте делаю так: private fun prepareDataList() { viewModel.getData() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(object : SingleObserver<List<Kotlin>> { override fun onSuccess(t: List<Kotlin>) { kotlinDataList = t } override fun onSubscribe(d: Disposable) {} override fun onError(e: Throwable) {} }) } kotlinDataList должен заполнится данными, далее я их рассовываю по вьюхе выпадающего списка. Проблема в том, что лист ВНЕ onSuccess всегда пустой, данные генерируются внутри onSuccess, но не выходят наружу. При дебагинге данные не выходят наружу и в конце бесконечно горит "application is running". Я все перегуглил, испробовал и всякие Flowable, Maybe и еще кучу приемов, пересмотрел все примеры, которые нашел в гугле, не могу понять, что у меня не так.
А где лист не пустой?
Viktor
А где лист не пустой?
внутри onSuccess он не пустой
Artem
внутри onSuccess он не пустой
И ты его присваиваешь внешней переменной?
Viktor
что значит "не выходят наружу"? ты после prepareDataList() запускаешь ещё какой-то код который делает что-то со списком?
да, потом идет метод: private fun prepareDataForExpListView(kotlinDataList: List<Kotlin>) { kotlinDataList.forEach { dataList[it.question] = listOf(it.answer) } }
Artem
А где ты ее проверяешь потом?
Artem
да, потом идет метод: private fun prepareDataForExpListView(kotlinDataList: List<Kotlin>) { kotlinDataList.forEach { dataList[it.question] = listOf(it.answer) } }
Где вызов этого метода в onSuccess? Откуда что-то узнает что данные появились?
Viktor
И ты его присваиваешь внешней переменной?
да, private var kotlinDataList: List<Kotlin> = mutableListOf() - внешняя переменная, в onSuccess пытаюсь его заполнить t, но внешний лист никогда не заполняется, все только внутри происходит и так и остается, потом приложение просто в ожидании...
Mikhail
onSuccess исполняется асинхронно, т.е. после запуска prepareDataList() он не будет исполнен, а будет только запущено исполнение всей цепочки, которая через некоторое время приведёт к вызову onSuccess
Mikhail
соответственно ты изнутри onSuccess должен вызывать всё что тебе нужно сделать с данными после их прихода
Viktor
onSuccess исполняется асинхронно, т.е. после запуска prepareDataList() он не будет исполнен, а будет только запущено исполнение всей цепочки, которая через некоторое время приведёт к вызову onSuccess
т.е. один вызов уходит в onSuccess, а основной поток идет дальше, и поэтому лист всегда пустой? Как тогда мне дождаться получения данных и только тогда заполнить лист?
Viktor
ну у тебя же в onSuccess данные уже есть, ты там можешь и заполнить список собственно
нет, так тоже не работает, я уже все перепробавал... override fun onSuccess(t: List<Kotlin>) { kotlinDataList.forEach { dataList[it.question] = listOf(it.answer) } }
Adel
Всем доброго времени суток. Имеется фрагмент, внутри него фрагмент с BottomSheet, а внутри BottomSheet ещё один фрагмент. Какой самый оптимальный способ передать данные из последнего фрагмента в самый родительский?
Anonymous
Зачем нужен котлин, когда есть православный джава, к тому же и оригинальный?
Mikhail
нет, так тоже не работает, я уже все перепробавал... override fun onSuccess(t: List<Kotlin>) { kotlinDataList.forEach { dataList[it.question] = listOf(it.answer) } }
ну не похоже что этот метод как-то манипулирует ListView/RecyclerView или что у тебя там
Anonymous
Просто взяли синтаксис изменили jetbrains в котлине, и как новый язык приподносят
Viktor
в самом конце идет метод заполнения этого списка: private fun initExpListView() { if (expandableListView != null) { val listData = dataList titleList = ArrayList(listData.keys) adapter = context?.let { CustomExpandableListAdapter( it, titleList as ArrayList<String>, listData ) } expandableListView!!.setAdapter(adapter) } }
Viktor
это все отдельные методы, идут в onCreateView один за другим
Mikhail
да
ну так его тоже нужно запустить в onSuccess, логично ведь если у тебя нихера нет ещё при его исполнении, то и ничего не отрисуется
Viktor
вот так идет в onCreateView expandableListView = root.findViewById(R.id.exp_list_view) prepareDataList() initExpListView()
Viktor
Может получить необходимый ViewModel, и уже в него передать данные?
так View дергает метод ViewModel и заполняет себя, так ведь по архитектуре или мне мат часть учить дальше))
Turalllb
Просто взяли синтаксис изменили jetbrains в котлине, и как новый язык приподносят
нет, не просто. Мог бы рассказать немного профитов, чтобы обо всех сказать, нужно эти оба языка идеально знать. Но если есть православный джава, то почему в гугл перешли на котлин? Наверно не просто так, потому стоит тоже попробовать, поплеваться несколько месяцев, а потом удивляться : эдакий я дурак был, что так долго на джаве сидел
Savva
Друзья, подскажите, пожалуйста. Повторяю за гугловским туториалом, где у них звездочка появляется внизу, под строкой, но у меня почему то появляется справа. Как пофиксить и чем это вызвано?
Стас 🍕🍕🍕
orientation поставь
Savva
orientation поставь
Вертикальный все прячет за левый край, а горизонтальный ничего визуально не меняет
Delt@[•_•]
Savva
У тебя у картинки ширина 0, сделай wrap content и вес убери
И у текстВью, и у картинки высота wrap_content
Стас 🍕🍕🍕
вес
Savva
Веса убери
убрал веса и поставил ширину по родительскому элементу и все заработало. Спасибо
Глеб
уважаемые
Глеб
у яндекс map sdk фришная или нет?
Valeriy
при скролле меняю цвет иконок в тулбаре так, но почему-то когда я нажимаю на кнопку меню в виде трех точек, то цвет перестает меняться у иконок menuItem'ов, кто знает почему такое может быть ?
Valeriy
т.е этот код отрабатывается, у кнопки назад цвет меняется,у кнопки в виде трех точек цвет меняется,а у иконок из меню перестает меняться
Стас 🍕🍕🍕
это же в onCreateOptionsMenu надо, не?
Стас 🍕🍕🍕
иначе при каждой перерисовке меню все это будет сбрасываться
Valeriy
это же в onCreateOptionsMenu надо, не?
у меня AppBarLayout и OnOffsetChangedListener,в нем вызываю метод
Dmytro
Всем привет у кого то был опыт с FacebookSdk (deferred deep link)?
Vitaly
Почему при обработке MotionEvent в onTouchListener может резко скакать координата y? Ситуация: Я медленно веду палец, координата изменяется в пределах 10 пикселей, а потом резко изменяется на 500+ пикселей
Vitaly
Всем привет у кого то был опыт с FacebookSdk (deferred deep link)?
У меня опыта с FacebokSdk не было, но в этой беседе принято сразу задавать вопрос Так можно быстрее получить ответ
Dmytro
У меня опыта с FacebokSdk не было, но в этой беседе принято сразу задавать вопрос Так можно быстрее получить ответ
Сразу задавать вопрос не получается. Уже 2 раза задавал тут полностью решил расширить круг.
Dmytro
Всем привет у кого то был опыт с FacebookSdk (deferred deep link)?
Я получаю AppLinkData всегда null при вызове AppLinkData.fetchDeferredAppLinkData(context, compHandl). Я не понимаю в чём проблема. Я использую инструмент тестирования от fb, ставлю галку на отправку отложенного дип линка переустанавливаю приложение и тп Всегда ответ null Хотя запрос проходит успешно (так как fb регистрирует мои запросы deferred deep links)
Sadyk
Всем добрый вечер, кто нибудь работал с файрбейз док-ей? И использовал ли кто нибудь вместо готового апи файрбейз ретрофит запросы? (Регистрация пользователя, вход и тд) Можете подсказать как их конвертировать в обычные рефтрофит запросы, а то я ничего не могу нагуглить(
Sadyk
да есть дефолтные запросы , допустим, signInWithEmailAndPassword , я хочу его через ретрофит сделать.
Roman
да есть дефолтные запросы , допустим, signInWithEmailAndPassword , я хочу его через ретрофит сделать.
Если я правильно понял, почитай тут https://firebase.google.com/docs/functions Создав свою функцию ты можешь привязать ее к своему домену и будут полноценные запросы
Master
Подскажите из AsyncTask как вернуть значение String во внешний класс. Внутри класса данные есть, а при вызове метода во внешнем классе null?
Master
callback
Поправлюсь, нужно получить данные во внешний класс и с Intent отправить в новую активность. В UI не нужно . Вопрос получить строку во внешний класс
Master
Anonymous
Как можно сделать чтобы в recycler view элемент удалялся по истечению нескольких секунд после добавления?
Kozimjon
Как можно сделать чтобы в recycler view элемент удалялся по истечению нескольких секунд после добавления?
можно в recycler в конструкторе передать листенер, который реализован во фрагменте - затем в адаптере в onBind запускаешь таймер - по истечении времени таймер передает листенеру id элемента (либо другое ключевое поле) - фрагмент получает id - по нему удаляет из листа нужный элемент, затем вызывает adapter.notifyDatasetChanged
Mikhail
В Google Play можно публиковать 32-х битную альфа версию? Уже почти сутки прошли, но обновление так и не появилось у тестеров. В консоли просто информационное предупреждение, но никаких запретов публикации не было.
Mikhail
Это обновление старого приложения, а не новый релиз.
Steel
Кто-нибудь может мне объяснить? Я запутался в разнообразии. Есть просто пакет android, есть что-то там под котлин, есть androidx, есть Android Jetpack, есть Anko, который все хвалят, а он оказывается deprecated, есть какой-то rxJava. Кто-нибудь может мне объяснить из чего вообще состоит экосистема андроида, и что зачем нужно?
Mikhail
Anko умер, это да
Mikhail
А Jetpack это что?
androidx это часть jetpack, как сказано в документации https://developer.android.com/jetpack/androidx https://developer.android.com/jetpack
Steel
А, вот оно, здесь всё
Сергей
А вообще, джетпак - насколько нужная штука?
Как освоишь-привыкнешь так и нужная
⁣
На Андроид как-то всё доходит с опозданием - в WPF, QML, JavaFX байндинги с незапамятных времён уже...
Vovka
Ребят, всем привет) Тыкнулся в корутинки - и сходу вспоткнулся Я прямо уже не знаю что за дела Ретрофит (2.6.0 разумеется) утверждает, что не может создать CallAdapter для java.lang.Object В сервисе метод пометить как suspend я не забыл Гугл чето тоже не радует решениями Может есть у кого предположения, что может идти не так? Буду очень благодарен любым отзывам)
Steel
Как освоишь-привыкнешь так и нужная
А про Jetpack Compose что скажете?
Vovka
kotlin, mvvm, koin
Vovka
корутины и лайв дата
Vovka
Код, стек?
или имелся в виду конкертный мой код который я не могу завести?
Kanstantsin
Вопрос в сервисе, для корутин там должен быть Deffered<Type>