如何使用Firestore查询的结果填充微调器? [英] How to populate a spinner with the result of a Firestore query?
本文介绍了如何使用Firestore查询的结果填充微调器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在创建一个 spinner
,其中将显示主题名称.主题名称存储在我的Firestore数据库中,如下所示:
I am creating a spinner
which will show the subject name. The subject names are stored in my Firestore database as follows:
subjects (collection)
|
|--- SUB01 (document)
| |
| |--- name : "Android"
|
|--- SUB02
| |
| |--- name : "Java"
我可以将结果获取到 RecyclerView
,但无法帮助自己做到为微调器.
I could fetch the result to an RecyclerView
but unable to help myself to do so for spinner.
推荐答案
要解决此问题,请使用以下代码行:
To solve this, please use the following lines of code:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference subjectsRef = rootRef.collection("subjects");
Spinner spinner = (Spinner) findViewById(R.id.spinner);
List<String> subjects = new ArrayList<>();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, subjects);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
subjectsRefRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
String subject = document.getString("name");
subjects.add(subject);
}
adapter.notifyDataSetChanged();
}
}
});
结果将是一个包含2个项目的微调器:
The result will be a spinner that will contain 2 items:
Android
Java
这篇关于如何使用Firestore查询的结果填充微调器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文