如何在 Kotlin 的 onBindViewHolder 中使用“override fun onClick”?
How to use "override fun onClick” inside onBindViewHolder in Kotlin?
我希望回收器视图监听其他片段中存在的按钮点击。我在第一个片段中将人添加到数据库的位置,单击添加后,添加的人应该出现在第二个片段的回收站视图中。
相同的代码可以在 java 中运行,但不能在 Kotlin 中运行。覆盖 onClick 的问题(“修饰符 'override' 不适用于 'local function'”)。
这个问题有解决办法吗?
密码是:
override fun onBindViewHolder(holder: ViewHolder, position:Int) {
holder.mRow = mData[position]
holder.Personname.text = mData[position].name
holder.Personage.text = mData[position].age.toString()
holder.mView.setOnClickListener (
View.OnClickListener {
override fun onClick{
if (null != mListener) {
mListener.onFragmentListenr(holder.mRow)
}
}
}
)
}
像这样...
holder.mView.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
mListener?.onFragmentListenr(holder.mRow)
}
})
可以简化成这样
holder.mView.setOnClickListener {
mListener?.onFragmentListenr(holder.mRow)
}
我希望回收器视图监听其他片段中存在的按钮点击。我在第一个片段中将人添加到数据库的位置,单击添加后,添加的人应该出现在第二个片段的回收站视图中。 相同的代码可以在 java 中运行,但不能在 Kotlin 中运行。覆盖 onClick 的问题(“修饰符 'override' 不适用于 'local function'”)。 这个问题有解决办法吗?
密码是:
override fun onBindViewHolder(holder: ViewHolder, position:Int) {
holder.mRow = mData[position]
holder.Personname.text = mData[position].name
holder.Personage.text = mData[position].age.toString()
holder.mView.setOnClickListener (
View.OnClickListener {
override fun onClick{
if (null != mListener) {
mListener.onFragmentListenr(holder.mRow)
}
}
}
)
}
像这样...
holder.mView.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
mListener?.onFragmentListenr(holder.mRow)
}
})
可以简化成这样
holder.mView.setOnClickListener {
mListener?.onFragmentListenr(holder.mRow)
}