代码已编译,没有任何错误,但是没有执行预期的操作

时间:2019-05-19 19:15:01

标签: kotlin

我正在学习在Android Studio(科特林)中开发android应用。我在YourTube视频的帮助下编写了一些代码,而我的代码是通过Firebase数据库添加一些价值。我的代码已成功编译,并在手机(不是模拟器)上安装了该应用程序,当我单击该按钮时,没有任何反应。 我的数据库未更新。我创建了多个Toast,以查看未执行代码的哪一部分,但是,出乎意料的是,执行Toast前后的代码却没有显示Toast消息。我不知道烤面包出了什么问题。

我正在使用最新版本的Android Studio 3.4.1

这是我的AddToFirebase.kt文件中的代码:

class AddToFirebase : AppCompatActivity() {

    private lateinit var database: DatabaseReference
    lateinit var addText: EditText
    lateinit var addButton: Button
    lateinit var otherValue: String

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_add_to_firebase)
        addText = findViewById(R.id.etxAddToFirebase)
        otherValue = "hellow"

        btnAddToFirebase.setOnClickListener {
            Toast.makeText(applicationContext, "TOAST_1", Toast.LENGTH_LONG)
            addData()
            Toast.makeText(applicationContext, "TOAST_2", Toast.LENGTH_LONG)
        }
    }

    private fun addData() {
        val addDat = etxAddToFirebase.text.toString().trim()
        Toast.makeText(applicationContext, "TOAST_3", Toast.LENGTH_SHORT)
        if (addDat.isEmpty()) {
            Toast.makeText(applicationContext, "TOAST_4", Toast.LENGTH_LONG)
            etxAddToFirebase.error = "Enter a value"
            return
        }

        Toast.makeText(applicationContext, "wooooo", Toast.LENGTH_LONG)
        val ref = FirebaseDatabase.getInstance().getReference("messages")
        val msgId = ref!!.push().key!!
        val message = Message(msgId, addDat, otherValue)

        ref.child(msgId).setValue(message).addOnCompleteListener {
            Toast.makeText(applicationContext, "DONE", Toast.LENGTH_LONG)
        }
    }
}

这是我创建的另一个类Message.kt中唯一的代码行

class Message (val id: String, val msg: String, val other:String)

除以下警告外,没有任何校对或gradle错误

  

类型为DatabaseReference的非空接收器上的不必要的非空断言(!!)

0 个答案:

没有答案