我试图了解Firebase / Firestore与Android之间的联系。我想在我的Android应用程序中使用一个简单的Spinner并得到这个不那么合乎逻辑的黑客。
我有一个字段,这是一个字符串,我想循环并将值放入ArrayList。然后,通过ArrayAdapter将此ArrayList设置为Spinner。
final ArrayList<String> list = new ArrayList<String>();
dbFoodName.collection("measures")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
list.add(String.valueOf(document.getId()));
}
} else {
Log.i("RunLog: ", "Error getting documents: ", task.getException());
}
}
});
Spinner中的内容有效。它看起来恰到好处。但是当我选择一个值时,应用程序崩溃了。
除非。
当我在顶部添加编码值时:
list.add("Choose measurement");
像这样:
final ArrayList<String> list = new ArrayList<String>();
list.add("Choose measurement");
dbFoodName.collection("measures")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
list.add(String.valueOf(document.getId()));
}
} else {
Log.i("RunLog: ", "Error getting documents: ", task.getException());
}
}
});
但为什么会这样呢?那里有谁可以解释?
修改 我得到了一个nullPointerException:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
我发现了关于该主题的这个很棒的链接:What is a NullPointerException, and how do I fix it?