【发布时间】:2021-04-27 15:24:12
【问题描述】:
在 ViewModel 或 Fragment 中为 recyclerView 项目设置 onClickListener 和 onLongClickListener?为什么?
第一个从 viewModel 获取 onClickListener:
class MyFragment : Fragment() {
...
private fun setUpAdapter() = MyAdapter({ todoEntity, todoTitle ->
viewModel.onClickListener(todoEntity, todoTitle)
}, { todoEntity: TodoEntity ->
viewModel.onTodoLongClick(todoEntity)
})
...
}
第二个在Fragment中获取onClickListener:
class MyFragment : Fragment() {
...
private fun setUpAdapter() = MyAdapter({ todoEntity, todoTitle ->
onClickListener(todoEntity, todoTitle)
}, { todoEntity: TodoEntity ->
onTodoLongClick(todoEntity)
})
fun onClickListener(todoEntity: TodoEntity, todoTitle: TextView) {
// Do Something
}
fun onTodoLongClick(todoEntity: TodoEntity) {
// Do Something
}
...
}
哪个更好?
【问题讨论】:
-
您的问题缺少关键词,无法解析。
-
我认为现在更好。
-
很遗憾没有; “更好”的问题是基于意见的,因此是题外话。我想到的词是第一句中的“去”或“成为”,并不是说它对这里的问题有那么大的帮助。
-
啊哈,谢谢。明白了。
标签: android onclicklistener android-viewmodel onlongclicklistener