从 Firebase 向 ListView 添加条目
Posted
技术标签:
【中文标题】从 Firebase 向 ListView 添加条目【英文标题】:add entry to ListView from Firebase 【发布时间】:2021-03-05 04:27:10 【问题描述】:早上好,
我正在尝试从 Firestore 获取数据并将其添加到我的 Listview。不幸的是,它不起作用,我不知道为什么。代码运行但没有向我的 Listview 添加任何条目。我的代码如下所示:
public void createListViewcontent()
listView = findViewById(R.id.mylistview);
final ArrayList<String> Listviewcontent= new ArrayList<String>();
db.collection("ok")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>()
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task)
if (task.isSuccessful())
for (QueryDocumentSnapshot document : task.getResult())
Listviewcontent.add(document.getId());
Toast.makeText(kk.this, document.getId() + " => " + document.getData(), Toast.LENGTH_SHORT).show();
Toast.makeText(kk.this, "weird", Toast.LENGTH_SHORT).show();
else
Toast.makeText(kk.this, "failure", Toast.LENGTH_SHORT).show();
);
ArrayAdapter<String> arrayAdapter= new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,Listviewcontent);
listView.setAdapter(arrayAdapter);
有人有想法吗?
最好的问候 安卓初学者
【问题讨论】:
【参考方案1】:您正在从数据库中获取结果,您正在将它们添加到列表中,但您确实没有通知适配器。这就是整个想法,你得到这些物品并在那之后立即通知适配器。所以应该简单地添加以下代码行:
arrayAdapter.notifydatasetchanged();
for 循环结束后:
db.collection("ok")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>()
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task)
if (task.isSuccessful())
for (QueryDocumentSnapshot document : task.getResult())
Listviewcontent.add(document.getId());
Toast.makeText(kk.this, document.getId() + " => " + document.getData(), Toast.LENGTH_SHORT).show();
Toast.makeText(kk.this, "weird", Toast.LENGTH_SHORT).show();
arrayAdapter.notifydatasetchanged(); //Notify the adapter
else
Toast.makeText(kk.this, "failure", Toast.LENGTH_SHORT).show();
);
您可以在以下帖子的回答中看到一个工作示例:
What miss, with connect Firestore and ListView for random results in sample?【讨论】:
以上是关于从 Firebase 向 ListView 添加条目的主要内容,如果未能解决你的问题,请参考以下文章
搜索数据名称 Firebase listview android
使用 firebase 在 listview 中显示所有用户图像