Firebase Android的动态标签页数

时间:2019-04-26 03:20:53

标签: android firebase tabs

我有一组类别字符串存储在FirebaseFirestore.中,现在,我想使用tabLayout.显示带有选项卡的字符串列表,这意味着可以设置的选项卡数量是动态的根据数据库上的内容。现在,我只知道如何使用以下代码行显示固定数量的标签:

TabLayout tabLayout = findViewById(R.id.tabLayout);
 tabLayout.addTab(tabLayout.newTab().setText("Tab1"));
 tabLayout.addTab(tabLayout.newTab().setText("Tab2"));
 tabLayout.addTab(tabLayout.newTab().setText("Tab3"));

那么,如何使选项卡动态化,从而根据数据库字符串列表中的内容设置选项卡的文本和数量?请帮忙。

1 个答案:

答案 0 :(得分:0)

说每个选项卡都存储在Firestore中名为tabs的集合中的文档中。然后,您可以get all documents in that collection并使用以下选项创建带有每个文档ID的标签:

db.collection("tabs")
    .get()
    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if (task.isSuccessful()) {
                for (QueryDocumentSnapshot document : task.getResult()) {
                    Log.d(TAG, document.getId() + " => " + document.getData());
                    tabLayout.addTab(tabLayout.newTab().setText(document.getId()));
                 }
            } else {
                Log.d(TAG, "Error getting documents: ", task.getException());
            }
        }
    });