Firebase 当我试图在微调器中具有动态值时,应用程序崩溃
我有下面的代码,想知道为什么它会使应用程序崩溃,我希望你能帮我弄清楚到底发生了什么 除了微调器代码之外,下面的代码并不精确 其想法是让spinner racePicker的数组由FireStore文档ID填充,如下所示:Firebase 当我试图在微调器中具有动态值时,应用程序崩溃,firebase,dictionary,kotlin,google-cloud-firestore,spinner,Firebase,Dictionary,Kotlin,Google Cloud Firestore,Spinner,我有下面的代码,想知道为什么它会使应用程序崩溃,我希望你能帮我弄清楚到底发生了什么 除了微调器代码之外,下面的代码并不精确 其想法是让spinner racePicker的数组由FireStore文档ID填充,如下所示: val db = FirebaseFirestore.getInstance() val raceArray = ArrayList() raceArray.add("Select race...") db.collection("races").get().addOnSu
val db = FirebaseFirestore.getInstance()
val raceArray = ArrayList()
raceArray.add("Select race...")
db.collection("races").get().addOnSuccessListener {
DocumentSnapshot ->
for (document in DocumentSnapshot) {
raceArray.add(document.id)
Log.e("info", "raceArray contains values $raceArray")
}
这是一个粗略的近似值。我可能在raceArray语句中设置了.toString(),或者使用了.addAll vs.add
(老实说,我记不清这是否是我编码的方式,但它足够近,足以给出一个想法,我现在正在记忆中打字)
我的意图是这样使用它:
racPicker.onSelectedItemListener = object :
OnItemSelectedListener {
override fun onNothingSelected() {
}
override fun onItemSelected(parent: AdapterView<*>?, view:
View?, position: Int, id: Long) {
val selection = parent?.getItemAtPosition(position).toString()
when (selection) {
"$selection" -> raceArray.remove("Select race...").also{
statAllocator(selection) }
}
}
}
相反?还是绝对有必要将每个when case/语句作为文本字符串调用?我本质上是在寻找一种方法,让微调器的选定项(这是从FireStore数据库生成的文档名数组)然后“检查自身”并触发其他功能。如果应用程序崩溃,则会有堆栈跟踪。请在logcat上查找,并将其添加到您的问题中。如果应用程序崩溃,则会出现堆栈跟踪。请在logcat上查找,并将其添加到您的问题中。
if (selectedItem.equals("$selection") {
// do stufd
}