запустить функцию, которая вообще в MainActivity, такое вообще реально?
Передай туда лямбду
в функцию?
в адаптер из активити, а оттуда во вьхолдер
есть где-нибудь пример кода?
Ну ее надо сделать статиком, или в companion object запихать. Но думаю если ты опишешь таску, то мы скажем что это говно и так делать не надо
там вся проблема в чем: это список, там обычные кнопки, при клике на которые должна идти работа с Volley и данная кнопка, на которую нажата должна быть покрашена в условный цвет, как бы я мог сделать onClick и просто проверять на какую кнопку нажали, но тогда у меня не будет работать покраска кнопки, так как это RecyclerView, соответвенно я могу делать эту покраску в адаптере, а как мне тогда делать работу с Volley?
каша сплошная, надеюсь объяснил понятно
Делаешь обработку нажатия в Активити, и прикидываешь ее в адаптер
а че так можно? 0_о
🙏
Ни каких статиков тебе не нужно. 1. Создаешь интерфейс с функцией, которую хочешь вызывать, например: interface BlaBlaListener { fun yourFunctiuon(paramIfNeeded: String) } 2. Активити имплементит этот интерфейс. 3. В Конструктор адаптера передаешь одним из параметров этот интерфейс, например: class YourAdapter(context: Context, blaBla: BlaBlaListener) : RecyclerView.Adapter() { } 4. Передаешь этот же лисенер в конструктор вью холдера. 5. И при создании адаптера передаешь лисенер val adapter = YourAdapter(requireCintext(), MainActivity@this) 6.Tеперь лисенер можно вызвать из вьюхолдера и он дернется в активити. Также ты можешь заменить интерфейс лямбдой. Но это полезно для общего понимания.
Обсуждают сегодня