我正在研究具有2个活动的简单应用程序。第一个显示ListView(从Cloud Firestore获取数据)和1个按钮,最后一个具有更改我的Firestore数据或添加新数据的功能。
我的问题是,直到我重新启动应用程序后,我的ListView项才会更改。我希望它通知更新并在第二次活动中按“后退”按钮时显示给我。
因此,我想为我的云Firestore数据库添加侦听器,或者我想获取未请求的最后添加或更新的文档。 然后,我可以将其更改或添加到onStart()函数的ListView中。
这是我检索数据并且mCollectionRef是集合引用的方式
mCollectionRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if(task.isSuccessful()){
for(QueryDocumentSnapshot documentSnapshot : Objects.requireNonNull(task.getResult())){
Book tempBook = new Book(documentSnapshot.getId(),documentSnapshot.getString("title"),documentSnapshot.getString("author"),documentSnapshot.getString("publisher"),documentSnapshot.getLong("copies"));
booksList.add(tempBook);
customAdapter.notifyDataSetChanged();
}
}
else{
Log.v("Error on book documents", String.valueOf(task.getException()));
}
}
});
答案 0 :(得分:0)
您可以使用notifydatasetchanged()
:
notifyDataSetChanged()
通知附加的观察者基础数据已更改,任何反映数据集的View均应刷新自身。
https://developer.android.com/reference/android/widget/BaseAdapter.html#notifyDataSetChanged()