【发布时间】:2020-08-20 00:15:58
【问题描述】:
我正在尝试使用 Kotlin 和 MVVM 架构创建应用程序。
我正在使用 RecyclerView 并像 Google 推荐的那样附加点击监听器
class ProductsFragment : Fragment() {
...
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
...
viewModelAdapter = myAdapter(myClickListener {
//Doing what i need with clicked item
})
...
}
...
}
class myClickListener(val listener: (ListItem) -> Unit) {
fun onClick(listItem: ListItem) = listener(listItem)
}
在这个简单的例子中,点击监听器工作正常。但是当我尝试更改 myClickListener 类时,例如:
class myClickListener(val listener: (ListItem, String) -> Unit) {
fun onClick(listItem: ListItem, action: String) = listener(listItem, action)
}
这里有编译错误
viewModelAdapter = myAdapter(myClickListener {
//Doing what i need with clicked item
})
有人可以解释一下我的更改后如何正确地将更改的 myClickListener 传递给 Adapter 吗?
【问题讨论】:
标签: android kotlin mvvm android-databinding