【发布时间】:2019-10-13 17:48:06
【问题描述】:
我正在重新设计一个我一直在使用 Kotlin 开发的应用程序,以适应这种语言。在我的 RecyclerView 适配器中,我为长点击创建了一个自定义的OnLongClickListener 界面:
interface OnItemLongClickListener{
fun onItemLongClick(entry: Entry)
}
fun setOnItemLongClickListener(listener: OnItemLongClickListener){
this.listener = listener
}
在我的MainActivity.kt 的onCreate() 中,我在我的适配器对象上调用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)
}
但是整个东西有一个红色下划线并抛出一个Type Mismatch 错误。
我可以为每个请求提供更多代码。我只是暂时保持简短以避免不必要的混乱。
【问题讨论】:
-
它已经拥有自己的
OnItemLongClickListener。将您的类重命名为例如MyItemLongClickListener,并且设置它的方法也不要混淆编译器 -
@VladyslavMatviienko 没有区别。
标签: android kotlin interface android-recyclerview