Я пытаюсь установить OnClickListener для кнопки внутри GroupAdapter RecyclerView
Мой код:
class settings : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
super.onCreateView(inflater, container, savedInstanceState)
val view = inflater.inflate(R.layout.fragment_settings, container, false)
val adapter = GroupAdapter<ViewHolder>()
adapter.add(SettingTitle("Permissions"))
adapter.add(SettingCardCarInfo())
//FAILED METHOD #1
view.btn_update_settings.setOnClickListener {
Log.d("tahoma","")
Toast.makeText(activity, "Your settings were updated", Toast.LENGTH_SHORT).show()
}
//FAILED METHOD #2
adapter.setOnItemClickListener { v, settings_end ->
Log.d("tahoma",v.id.toString())
}
view.settingsRecycler.adapter = adapter
return view
}}
class SettingEnd : Item<ViewHolder>() {
override fun getLayout(): Int {
return R.layout.settings_end
}
override fun bind(viewHolder: ViewHolder, position: Int) {}
Что я пробовал:
1 - При простом вызове прослушивателя onclick на кнопке возникает ошибка с нулевым вызовом
2 - Использование адаптера прослушивателя onclick действительно перехватывало щелчки, но игнорировало любые щелчки на активируемых элементах (поэтомуне годится для кнопки)
3 - Выполнить то же самое, что и # 1, но с помощью метода «OnStart» - не сработало, так как «представление» не вызывалось внутри этого метода
4- Вызов слушателя onclick с помощью метода OnBind для держателя вида - он работал (я смог обнаружить нажатия кнопок), но не смог получить доступ к необходимым данным из других держателей вида в том же адаптере, которые содержат edittexts, к которым мне нужно добраться.
Любая помощь на этом этапе будет признательна, решения, написанные в синтаксисе Kotlin, будут отличными