Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud firestore 查询发生更改后如何刷新recyclerview_Google Cloud Firestore_Android Recyclerview_Querying - Fatal编程技术网

Google cloud firestore 查询发生更改后如何刷新recyclerview

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;

每当用户从微调器中选择“新建”选项时,我想更改“回收器”视图的内容

在此查询将根据用户选择的pos的值进行更改。但这种方法不起作用,因为它根据pos的默认值显示数据。 刷新活动将无法工作,因为它将再次设置pos的默认值

 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);
}
}