【问题标题】:Modifier 'override' is not applicable to 'local function'修饰符“覆盖”不适用于“本地功能”
【发布时间】:2020-06-16 14:24:03
【问题描述】:

在 android 中使用 firebase realtime datqabase 时出现以下错误

 val catListener =  object : ValueEventListener {
        override fun onDataChange(dataSnapshot: DataSnapshot) {
            if (dataSnapshot.exists()) {
                // Get Post object and use the values to update the UI
                for (eventSnapshot in dataSnapshot.children) {
                    val name = eventSnapshot.child("name").getValue() as String
                    list.add(Category(name));
                }

                var adp = CategoryAdapter(list);
                cat_rv.adapter = adp

                adp.onItemClick = { pos, view ->

                    i.putExtra("category", list[pos].name)
                    startActivity(i)
                }
            }

            override fun onCancelled(databaseError: DatabaseError) {
                // Getting Post failed, log a message
                Log.w("Category", "loadCat:onCancelled", databaseError.toException())

            }
        }

错误--

修饰符'override'不适用于'local function'(指对象:ValueListener

对象不是抽象的,没有实现抽象成员public 抽象乐趣 onCancelled(@NonNull p0: DatabaseError): 单位定义在 com.google.firebase.database.ValueEventListener

【问题讨论】:

    标签: firebase kotlin firebase-realtime-database


    【解决方案1】:

    您缺少各种语法 - 主要是右大括号。这至少是让您获得有效 Kotlin 语法的原因。

        val catListener =  object : ValueEventListener {
            override fun onDataChange(dataSnapshot: DataSnapshot) {
                if (dataSnapshot.exists()) {
                    // Get Post object and use the values to update the UI
                    for (eventSnapshot in dataSnapshot.children) {
                    }
                }
            }
    
            override fun onCancelled(databaseError: DatabaseError) {
                // Getting Post failed, log a message
                Log.w("Category", "loadCat:onCancelled", databaseError.toException())
    
            }
    

    【讨论】:

    • 是的,很抱歉我提供了部分代码。上面的代码给了我一个错误
    • 看看我有什么。我编辑了我的问题。仍然出现同样的错误。
    • 您仍然有语法错误。这里没有足够的信息来了解您要表达的意思。请尝试自行解决语法问题 - Stack Overflow 不是一个很好的编译器错误迭代论坛。
    【解决方案2】:

    改变这个:

     val catListener =  object : ValueEventListener {
            override fun onDataChange(dataSnapshot: DataSnapshot) {
                if (dataSnapshot.exists()) {
                    // Get Post object and use the values to update the UI
                    for (eventSnapshot in dataSnapshot.children) {
                        val name = eventSnapshot.child("name").getValue() as String
                        list.add(Category(name));
                    }
    
                    var adp = CategoryAdapter(list);
                    cat_rv.adapter = adp
    
                    adp.onItemClick = { pos, view ->
    
                        i.putExtra("category", list[pos].name)
                        startActivity(i)
                    }
                }
    
                override fun onCancelled(databaseError: DatabaseError) {
                    // Getting Post failed, log a message
                    Log.w("Category", "loadCat:onCancelled", databaseError.toException())
    
                }
            }
    

    进入这个:

     val catListener =  object : ValueEventListener {
            override fun onDataChange(dataSnapshot: DataSnapshot) {
                if (dataSnapshot.exists()) {
                    // Get Post object and use the values to update the UI
                    for (eventSnapshot in dataSnapshot.children) {
                        val name = eventSnapshot.child("name").getValue() as String
                        list.add(Category(name));
                    }
    
                    var adp = CategoryAdapter(list);
                    cat_rv.adapter = adp
    
                    adp.onItemClick = { pos, view ->
    
                        i.putExtra("category", list[pos].name)
                        startActivity(i)
                    }
                  }
               }
    
                override fun onCancelled(databaseError: DatabaseError) {
                    // Getting Post failed, log a message
                    Log.w("Category", "loadCat:onCancelled", databaseError.toException())
    
                }
            }
    

    您缺少括号

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      相关资源
      最近更新 更多