Как исправить java .lang.UnsupportedOperationException? (Kotlin - Android Студия) - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь добавить intem в свой список массивов, когда в мою базу данных firebase добавлены новые значения, используя этот кусок кода ЭТО А КОД ОБРАЗЦА (ошибка возникает, когда вы нажимаете кнопку отправки) :

ref.addChildEventListener(object : ChildEventListener {

        override fun onCancelled(p0: DatabaseError) {
        }

        override fun onChildMoved(p0: DataSnapshot, p1: String?) {
        }


        override fun onChildChanged(dataSnapshot: DataSnapshot, p1: String?) {
        }

        @SuppressLint("LongLogTag")
        override fun onChildAdded(dataSnapshot: DataSnapshot, s: String?) {

            val newMSG: Messages? = dataSnapshot.getValue(Messages::class.java)

            val myrv = findViewById<RecyclerView>(R.id.msgRV)
            name = dataSnapshot.child("name").value.toString()
            muid = dataSnapshot.child("muid").value.toString()
            time = dataSnapshot.child("time").value.toString()
            message = dataSnapshot.child("message").value.toString()
            var contained = false
                messagesArrayList.forEach{ contained =  it.time !=time}
            if (messagesArrayList.isNotEmpty() && contained){
                messagesArrayList.add(Messages(newMSG?.name, newMSG?.mUID, newMSG?.time, newMSG?.message)) // The error is pointing here
                messagesArrayList = messagesArrayList.sortedWith(compareBy { it.time }) as MutableList<Messages>
                val myModulesAdapter = MessageRV(this@MessageActivity, messagesArrayList)
                myrv.layoutManager = GridLayoutManager(this@MessageActivity, 1)
                myrv.adapter = myModulesAdapter
                myrv.scrollToPosition(myModulesAdapter.itemCount - 1)

            }

        }

        override fun onChildRemoved(p0: DataSnapshot) {
        }
    })

Но я получил эту ошибку:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.medanis.medmax, PID: 3533
    java.lang.UnsupportedOperationException
        at java.util.AbstractList.add(AbstractList.java:153)
        at java.util.AbstractList.add(AbstractList.java:111)
        at com.medanis.medmax.messages.MessageActivity$onCreate$3.onChildAdded(MessageActivity.kt:148)
        at com.google.firebase.database.core.ChildEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.3.0:79)
        at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.3.0:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.3.0:55)
        at android.os.Handler.handleCallback(Handler.java:907)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7478)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)

Кто-нибудь может сказать мне, что пошло не так? Как я могу это исправить?

ПРИМЕЧАНИЕ: ваша база данных должна быть структурирована следующим образом: Messages / MoIfH0sbt2UjJj7yozXRQF72RgK2 / w691O35sZ2hvDpkTbAnm6aaTjZj1 /, затем значение времени в этом формате * ModelHyMss 10 * 10mmd * MessageHyMssd * MessageHyMssd

SOLLUTION: Благодаря @Slaw и @AlexMamo я решил проблему, изменив {as MutableList} на {.toMutableList ()}

(name, muid, time, message )

1 Ответ

0 голосов
/ 28 мая 2020

SOLLUTION: Благодаря @Slaw и @AlexMamo я решил проблему, изменив {as MutableList} на {.toMutableList ()}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...