我有一组类别字符串存储在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"));
那么,如何使选项卡动态化,从而根据数据库字符串列表中的内容设置选项卡的文本和数量?请帮忙。
答案 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());
}
}
});