科特林,MVVM。 RecyclerView 的点击侦听器中的事件很少
Kotlin, MVVM. Few events inside click listener fo RecyclerView
我正在尝试使用 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 时,例如:
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 吗?
仅当您只有一个参数时才可以省略名称。 Kotlin 将提供此单个参数作为 it
。如果您需要多个参数,则必须明确。试试这个代码:
viewModelAdapter = myAdapter(myClickListener { first, second ->
//Doing what i need with clicked item
})
我正在尝试使用 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 时,例如:
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 吗?
仅当您只有一个参数时才可以省略名称。 Kotlin 将提供此单个参数作为 it
。如果您需要多个参数,则必须明确。试试这个代码:
viewModelAdapter = myAdapter(myClickListener { first, second ->
//Doing what i need with clicked item
})