Я исследовал лучшие способы реализации onClick для представлений переработчика, есть хорошие способы сделать это, но является ли передача фрагмента и ссылка на функцию во фрагменте достойным решением? Впервые задаю вопрос здесь, так что извините за плохой формат.
Фрагмент:
class MyFragment: BaseFragment() {
private val selectedList = ArrayList<Object>()
......
rvTempListView.adapter = MyAdapter(
tempGroupedList,
this
)
.......
fun itemSelected(object: Object) {
if (object in selectedList){
selectedList.remove(object)
} else {
selectedList.add(object)
}
}
}
RecyclerView.Adapter:
class MyAdapter(val uniqueObjects: MutableList<Object>,
val myFragment: MyFragment)
: RecyclerView.Adapter<MyAdapter.ViewHolder>() {
val TAG = javaClass.simpleName
.......
cardView.setOnClickListener {
mFragment.itemSelected(uniqueObjects[position]) {
if (toggle){
ivChecked.visibility = View.VISIBLE
toggle = !toggle
} else {
ivChecked.visibility = View.INVISIBLE
toggle = !toggle
}
}
}
.......
}
Приведенное выше решение прекрасно работает, просто интересно если это плохая практика или нет? Спасибо!