查询更改后如何刷新recyclerview

问题描述

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

这里的查询会根据用户选择的 pos 的值而改变。但是此方法不起作用,因为它根据 pos 的认值显示数据。 刷新 Activity 将不起作用,因为它会再次设置 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);
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)