相关疑难解决方法(0)

Android - Kotlin - 对象必须声明为abstract或实现抽象成员

我为我的RecyclerView设置了一个ItemClickLister,如下所示:

ItemClickSupport.addTo(recyclerView!!).setOnItemClickListener(
                    object : ItemClickSupport.OnItemClickListener {
                        override fun onItemClicked(recyclerView: RecyclerView?, position: Int, v: View?) {
                            val row = recyclerView!!.getChildAt(position)
                            val el = row.findViewById(R.id.active_expandablelayout) as ExpandableLayout

                            if (el.isExpanded) {
                                el.collapse()
                            } else {
                                el.expand()
                            }
                        }
                    }
            )
Run Code Online (Sandbox Code Playgroud)

使用我翻译成Kotlin的ItemClickSupport库.

我在object(第2行)上收到错误消息:

object必须声明为abstract或实现抽象成员.

我是Kotlin的新手,我也找不到任何解决方案.

任何帮助是极大的赞赏.

编辑:

这是我的ItemClickSupport.kt:

class ItemClickSupport private constructor(private val mRecyclerView: RecyclerView) {
    private var mOnItemClickListener: OnItemClickListener? = null
    private var mOnItemLongClickListener: OnItemLongClickListener? = null
    private val mOnClickListener = View.OnClickListener { v ->
        if (mOnItemClickListener != null) …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-recyclerview

6
推荐指数
1
解决办法
4215
查看次数

为什么Lambda表达式对Kotlin和Java类的行为有所不同?

为什么我可以在课堂上使用Lambda java.lang.Thread,但不能用于MyThread

interface MyRunnable{
    fun run()
}

class MyThread(runnable : MyRunnable){    
}

fun test(){
    Thread({})     // All Alright

    MyThread({})   //Exception. Type mismatch <<-- Why ?
}
Run Code Online (Sandbox Code Playgroud)

链接检查此示例:https://try.kotlinlang.org/#/UserProjects/tbs79qfkh50psp7r3qrdrinrmt/sfkpjq1bjvg4r6d5rmnu6mp4a8

kotlin

2
推荐指数
1
解决办法
655
查看次数

标签 统计

kotlin ×2

android ×1

android-recyclerview ×1