如何使用Firestore查询结果填充下拉列表?

4
我正在创建一个旋转器 `spinner`,用于显示科目名称。科目名称如下存储在我的 Firestore 数据库中:
subjects (collection)
|
|--- SUB01 (document)
|    |
|    |--- name : "Android"
|
|--- SUB02
|    |
|    |--- name : "Java"

我可以将结果获取到RecyclerView中,但无法在下拉菜单中实现相同的功能。

1个回答

10

为了解决这个问题,请使用以下代码:

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个选项的旋转器。
Android
Java

1
效果非常好,非常感谢。 - Abubakar Siddique
2
完美的答案。谢谢。 - Pooja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接