【问题标题】:Text not setting to mutable string文本未设置为可变字符串
【发布时间】:2018-08-30 16:13:00
【问题描述】:

我正在尝试将文本添加到变量并在对话框中使用它,但它不会放入任何内容。 这是我的代码:

var dex = ""
firestoreInstance.collection("test").whereEqualTo("module", listMod[spinnerMod.selectedItemPosition].ID).get().addOnCompleteListener { task ->
     if (!task.result.isEmpty) for (document in task.result) {
          dex += "Success"
     } else {
          dex += "Fail"
     }
}
val builder = AlertDialog.Builder(this)
builder.setMessage(dex).setTitle(dex).show()

这是输出:

我错过了什么?

【问题讨论】:

    标签: android firebase kotlin google-cloud-firestore


    【解决方案1】:

    Firebase Tasks 异步执行。发生的事情是您启动查询并立即提出AlertDialog,而dex 仍然是一个空字符串。然后,当查询完成时,它会更改 dex 的值,但不会再次读取。

    您可以改为在任务完成时显示对话框:

    firestoreInstance.collection("test").whereEqualTo("module", listMod[spinnerMod.selectedItemPosition].ID).get().addOnCompleteListener { task ->
         var dex = ""
         if (!task.result.isEmpty) for (document in task.result) {
              dex += "Success"
         } else {
              dex += "Fail"
         }
        val builder = AlertDialog.Builder(this)
        builder.setMessage(dex).setTitle(dex).show()
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      相关资源
      最近更新 更多