如何解决将数据从Firestore馈送到回收者视图
我正在实现一个搜索页面。所以OnQuerySubmit(),我想加载与用户输入匹配的数据。 这是我在用户提交查询时调用的方法。
public void search(String query) {
Log.d(TAG,query);
Log.d(TAG,"getting laborers");
FirebaseFirestore.getInstance()
.collection("skills")
.orderBy("name")
.startAt(query.trim())
.endAt(query.trim() + "\uf8ff")
.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
String laborID;
labors.clear();
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d(TAG,document.getId() + " => " + document.getData());
laborID = document.get("laborID").toString();
FirebaseFirestore.getInstance().collection("users")
.document(laborID).get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot document) {
String id;
String name;
LaborM tmp = new LaborM(id,name);
if (document.contains("profile"))
tmp.setProfileURL(document.get("profile").toString());
labors.add(tmp);
}
});
}
Toast.makeText(getApplicationContext(),labors.size()+"",Toast.LENGTH_LONG).show();
//I have called the notifyDataSetChange() here in updateLabors(labors)
laborsRecycleAdapter.updateLabors(labors);
}
}
});
}
但是无论用户查询什么,有时回收者视图都不会显示任何内容。尽管有一些与用户查询匹配的数据。但是当搜索视图再次成为焦点时,回收者视图将显示结果。 我已经烤过劳方arraylist的大小,它总是显示0 ??。 我希望搜索完成后立即在回收者视图中显示数据。有人可以帮助我吗? 预先感谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。