[Hy,我正在尝试将集合中的文档名称添加到列表中,以将其应用到我的android应用程序中的微调器上,并且在日志中显示了文档列表,但List.size返回了0,因此微调框不显示任何内容...这是微调器设置代码:
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);
这是问题列表()函数:
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;
}
pblmDB是FirebaseFirestore元素。
这是我在打开活动时获得的日志:
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 ).
感谢所有可能对我有帮助的人!
感谢bhdrkn的帮助,我刚刚更改为ArrayList,现在可以正常工作!