Java 正在尝试添加文档';从firestore到列表的名称<;字符串>;
Hy,我正在尝试将集合中的文档名称添加到列表中,以将其应用到我的android应用程序的微调器上,在我制作的日志中,它显示文档列表,但List.size返回0,因此微调器不显示任何内容。。。 以下是微调器设置代码:Java 正在尝试添加文档';从firestore到列表的名称<;字符串>;,java,list,google-cloud-firestore,Java,List,Google Cloud Firestore,Hy,我正在尝试将集合中的文档名称添加到列表中,以将其应用到我的android应用程序的微调器上,在我制作的日志中,它显示文档列表,但List.size返回0,因此微调器不显示任何内容。。。 以下是微调器设置代码: Spinner listProblem = findViewById(R.id.problemList); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, andro
Spinner listProblem = findViewById(R.id.problemList);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, problemTitles());
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
listProblem.setAdapter(adapter);
提前感谢所有可能帮助我的人 您是否尝试过
ArrayList
实现?您拥有的列表实现新列表{…}
未正确实现,我不明白您为什么需要自定义实现。太好了,谢谢!它不是定制的,而是内置的默认列表设置……您可以使用基于列表的UI小部件,如Spinner,没有问题。我所看到的是,您正在成功地从您的集合中获取文档,如日志所示,但是您没有正确地将文档添加到列表中,或者您的列表在每次运行脚本时都被初始化或清除;因此,这些文档不会出现在您的列表中。你能在做其他事情之前检查一下吗?我把它改为ArrayList,现在它在视图的微调器中显示文档的名称,但我仍然无法成功地通过“getSelectedItem().toString()”或“OnItemSelectedListener”获得用户的选择,它们都返回null。很高兴知道你取得了一些进展。您能用新代码更新您的问题并显示您收到的任何错误吗?查看此示例以了解此问题可能是什么。您是否尝试过ArrayList
实现?您拥有的列表实现新列表{…}
未正确实现,我不明白您为什么需要自定义实现。太好了,谢谢!它不是定制的,而是内置的默认列表设置……您可以使用基于列表的UI小部件,如Spinner,没有问题。我所看到的是,您正在成功地从您的集合中获取文档,如日志所示,但是您没有正确地将文档添加到列表中,或者您的列表在每次运行脚本时都被初始化或清除;因此,这些文档不会出现在您的列表中。你能在做其他事情之前检查一下吗?我把它改为ArrayList,现在它在视图的微调器中显示文档的名称,但我仍然无法成功地通过“getSelectedItem().toString()”或“OnItemSelectedListener”获得用户的选择,它们都返回null。很高兴知道你取得了一些进展。您能用新代码更新您的问题并显示您收到的任何错误吗?查看此示例以了解此问题可能是什么。
public List<String> problemTitles() {
problemList = new List<String>() {
@Override
public int size() {
return 0;
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public boolean contains(@Nullable Object o) {
return false;
}
@NonNull
@Override
public Iterator<String> iterator() {
return null;
}
@NonNull
@Override
public Object[] toArray() {
return new Object[0];
}
@NonNull
@Override
public <T> T[] toArray(@NonNull T[] a) {
return null;
}
@Override
public boolean add(String s) {
return false;
}
@Override
public boolean remove(@Nullable Object o) {
return false;
}
@Override
public boolean containsAll(@NonNull Collection<?> c) {
return false;
}
@Override
public boolean addAll(@NonNull Collection<? extends String> c) {
return false;
}
@Override
public boolean addAll(int index, @NonNull Collection<? extends String> c) {
return false;
}
@Override
public boolean removeAll(@NonNull Collection<?> c) {
return false;
}
@Override
public boolean retainAll(@NonNull Collection<?> c) {
return false;
}
@Override
public void clear() {
}
@Override
public String get(int index) {
return null;
}
@Override
public String set(int index, String element) {
return null;
}
@Override
public void add(int index, String element) {
}
@Override
public String remove(int index) {
return null;
}
@Override
public int indexOf(@Nullable Object o) {
return 0;
}
@Override
public int lastIndexOf(@Nullable Object o) {
return 0;
}
@NonNull
@Override
public ListIterator<String> listIterator() {
return null;
}
@NonNull
@Override
public ListIterator<String> listIterator(int index) {
return null;
}
@NonNull
@Override
public List<String> subList(int fromIndex, int toIndex) {
return null;
}
};
prblmDB.collection("Problems").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
int i = -1;
for (QueryDocumentSnapshot document : Objects.requireNonNull(task.getResult())) {
problemList.add(i++, Objects.requireNonNull(document.get("Prblm Title: ")).toString());
Log.d("document title: ", Objects.requireNonNull(document.get("Prblm Title: ")).toString());
}
Log.d("list lenth: ", String.valueOf(problemList.size()));
} else {
Log.e(TAG, "Error getting documents: ", task.getException());
}
Log.println(Log.DEBUG, "ValueEventListener: ", "Done");
SPB.setVisibility(View.INVISIBLE);
Log.i("list value", problemList.toString());
}
}).isSuccessful();
return problemList;
}
D/document title:: violance
global worming
math class
boringness
sadness
D/list lenth:: 0
D/ValueEventListener:: Done
I/list value: com.example.igi.Solution$2@1cdffeb
I/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzaq@6036be1
D/FirebaseAuth: Notifying id token listeners about user ( XsiavnC7IDSXOlSpvbMLfVbPRtT2 ).