我正在重新设计与Kotlin一起开发的应用程序,以适应该语言。在我的RecyclerView适配器中,我创建了一个自定义OnLongClickListener
界面以供长按:
interface OnItemLongClickListener{
fun onItemLongClick(entry: Entry)
}
fun setOnItemLongClickListener(listener: OnItemLongClickListener){
this.listener = listener
}
在我的onCreate()
的{{1}}中,我在适配器对象上调用MainActivity.kt
以传递一些意向附加信息:
setOnItemLongClickListener
但是整个东西都有红色下划线,并引发 adapter!!.setOnItemLongClickListener { entry ->
val intent = Intent(this@MainActivity, AddEditEntryActivity::class.java)
intent.putExtra(AddEditEntryActivity.EXTRA_ID, entry.id)
intent.putExtra(AddEditEntryActivity.EXTRA_USERNAME, entry.username)
intent.putExtra(AddEditEntryActivity.EXTRA_HINT, entry.hint)
intent.putExtra(AddEditEntryActivity.EXTRA_PASSWORD, entry.password)
startActivityForResult(intent, EDIT_ENTRY_REQUEST)
}
错误。
我可以为每个请求提供更多代码。我只是暂时说一下,以免造成不必要的混乱。
答案 0 :(得分:1)
请始终包含完整的错误消息。没有它,我只能猜测该问题与您在预期OnItemLongClickListener
对象时提供lambda有关。您可以这样更改代码:
adapter!!.setOnItemLongClickListener (object: OnItemLongClickListener {
override fun onItemLongClick(entry: Entry){
//code goes here
}
})
您尝试执行的操作仅适用于Java接口,并且称为SAM conversion。