class Fragment {
val listener = object: CustomAdapter.CustomViewHolderListener() {
override fun onCustomItemClicked(x: Object) {}
}
fun onViewCreated() {
val adapter = CustomAdapter(listener)
}
}
---------------
class CustomAdapter(private val listener: CustomViewHolderListener) {
val listOfXObject = emptyList() // this is where you save your x objects
interface CustomViewHolderListener{
fun onCustomItemClicked(x : Object)
}
override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
holder.itemView.setOnClickListener {
listener.onCustomItemClicked(listOfXObject[position])
}
}
}
2条答案
按热度按时间liwlm1x91#
我的想象是这样的。
Fragment将一个侦听器对象传递给适配器,适配器再将其传递给ViewHolders
下面是一个快速的草图,它应该是什么样子
这里有一些文章可能会帮助你了解事情的大致要点,但它们不会直接回答你的问题
希望对你有帮助link 1link 2
jk9hmnmh2#
如果使用数据绑定,则需要通过适配器类将视图(在本例中为Fragment)传递到布局中,并且需要将视图导入布局文件中,以便能够调用视图的方法
将你当前的模型类
item
传入这个新方法,然后在你的视图中创建onXXXClick方法,然后做你想做的任何事情。如果你要做与视图相关的操作,比如从一个片段导航到另一个片段或者启动一个服务,你应该在你的视图中创建上面的函数,如果你要做与网络或数据库相关的操作,它应该在你的
ViewModel
中你可以看看我的GitHub repository更好地理解。