Текст не устанавливается в изменяемую строку - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь добавить текст в переменную и использовать его в диалоге, но он ничего не вставит. Вот мой код:

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()

и это вывод:

enter image description here

Чего мне не хватает?

1 Ответ

0 голосов
/ 30 августа 2018

Firebase Task s выполняется асинхронно. Происходит то, что вы запускаете запрос и сразу вводите 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()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...