Google cloud firestore 查询发生更改后如何刷新recyclerview
每当用户从微调器中选择“新建”选项时,我想更改“回收器”视图的内容 在此查询将根据用户选择的pos的值进行更改。但这种方法不起作用,因为它根据pos的默认值显示数据。 刷新活动将无法工作,因为它将再次设置pos的默认值Google cloud firestore 查询发生更改后如何刷新recyclerview,google-cloud-firestore,android-recyclerview,querying,Google Cloud Firestore,Android Recyclerview,Querying,每当用户从微调器中选择“新建”选项时,我想更改“回收器”视图的内容 在此查询将根据用户选择的pos的值进行更改。但这种方法不起作用,因为它根据pos的默认值显示数据。 刷新活动将无法工作,因为它将再次设置pos的默认值 public void load_recycler(String type, int year) { progressDialog.show(); FirestoreRecyclerOptions<holder> options = null;
public void load_recycler(String type, int year) {
progressDialog.show();
FirestoreRecyclerOptions<holder> options = null;
Query query = rootRef.collection(type).document(String.valueOf(year)).collection("data").orderBy("ref_id", Query.Direction.ASCENDING)
.whereEqualTo("category",pos);
options = new FirestoreRecyclerOptions.Builder<holder>().setQuery(query, holder.class).build();
adapter = new FirestoreRecyclerAdapter<holder, RecyclerAdapter>(options) {
@Override
protected void onBindViewHolder(@NonNull final RecyclerAdapter holder, final int position, @NonNull final holder model) {
holder.ref_id.setText(model.getRef_id());
holder.detail.setText(model.getDetail());
holder.style.setText(model.getStyle());
Glide.with(getApplicationContext()).load(model.getImage()).into(holder.image);
holder.enter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String documentId = getSnapshots().getSnapshot(position).getId();
Intent intent = new Intent(getApplicationContext(),DetailActivity.class);
intent.putExtra("Year",year);
intent.putExtra("Type",type);
intent.putExtra("Document",documentId);
startActivity(intent);
}
});
}
@NonNull
@Override
public RecyclerAdapter onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item_card, parent, false);
return new RecyclerAdapter(view);
}
};
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false) {
@Override
public void onLayoutCompleted(RecyclerView.State state) {
super.onLayoutCompleted(state);
progressDialog.dismiss();
}
});
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
public static class RecyclerAdapter extends RecyclerView.ViewHolder {
TextView ref_id, style, detail;
ImageView image,enter;
CardView card;
public RecyclerAdapter(@NonNull View itemView) {
super(itemView);
ref_id = itemView.findViewById(R.id.ref_id);
style = itemView.findViewById(R.id.style);
detail = itemView.findViewById(R.id.detail);
image = itemView.findViewById(R.id.image);
card = itemView.findViewById(R.id.card);
enter = itemView.findViewById(R.id.enter);
}
}
public void load\u回收器(字符串类型,整数年){
progressDialog.show();
FirestoreRecyclerOptions选项=null;
Query Query=rootRef.collection(type).document(String.valueOf(year)).collection(“数据”).orderBy(“ref\u id”,Query.Direction.升序)
.whereEqualTo(“类别”,pos);
options=new FirestoreRecyclerOptions.Builder().setQuery(query,holder.class).build();
适配器=新FirestoreRecyclerAdapter(选项){
@凌驾
受保护的无效onBindViewHolder(@NonNull final RecyclerAdapter holder,final int position,@NonNull final holder model){
holder.ref_id.setText(model.getRef_id());
holder.detail.setText(model.getDetail());
holder.style.setText(model.getStyle());
使用(getApplicationContext())将(model.getImage())加载到(holder.image)中;
holder.enter.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串documentId=getSnapshots().getSnapshot(位置).getId();
Intent Intent=新的Intent(getApplicationContext(),DetailActivity.class);
意向。额外(“年”,年);
意向。额外(“类型”,类型);
意向书。putExtra(“文件”,documentId);
星触觉(意向);
}
});
}
@非空
@凌驾
public RecyclerAdapter onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
View=LayoutFlater.from(getApplicationContext())。充气(R.layout.item_卡,父项,false);
返回新的RecyclerAdapter(视图);
}
};
setLayoutManager(新的LinearLayoutManager(getApplicationContext(),LinearLayoutManager.VERTICAL,false){
@凌驾
仅限公共空间布局已完成(RecyclerView.State){
超级。onLayoutCompleted(州);
progressDialog.disclose();
}
});
recyclerView.setAdapter(适配器);
adapter.notifyDataSetChanged();
}
公共静态类RecyclerAdapter扩展了RecyclerView.ViewHolder{
TextView参考id、样式、详细信息;
ImageView图像,输入;
CardView卡;
公共回收适配器(@NonNull View itemView){
超级(项目视图);
ref_id=itemView.findviewbyd(R.id.ref_id);
style=itemView.findviewbyd(R.id.style);
detail=itemView.findviewbyd(R.id.detail);
image=itemView.findviewbyd(R.id.image);
card=itemView.findviewbyd(R.id.card);
enter=itemView.findViewById(R.id.enter);
}
}