从另一个适配器刷新 recyclerview 适配器的值

Refreshing values of recyclerview adapter from another adapter

我必须在一个 activity 中使用不同适配器的两个数据集,我想使用 notifyDataSetChanged() 但是它不适用于另一个适配器。所以在我的 adapterFirst class 中,我有 LongCLickListener 正在使用 notifyDataSetChanged() 并且我想调用 adapterSecond 来通知是否更新了 adapterFirst。按 LongClick

时 AdapterSecond 数据未更新
 public class AdapterFirst extends RecyclerView.Adapter <AdapterFirst .ViewHolder> {

            private List<Object> objectList;
            private Context mContext;
            AdapterSecond adapterSecond;

            public AdapteFirst(List<Object> list) { objectList= list; }

            @Override
            public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

                View view = LayoutInflater.from(parent.getContext())
                     .inflate(R.layout.item_list, parent, false);
                return new ViewHolder(view);
            }

          @Override
            public void onBindViewHolder(final ViewHolder holder, int position) {

            holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {

                    @Override
                    public boolean onLongClick(View v) {
                         //query method
                         notifyDataSetChanged(); //working

                         //here it gets the nullpointerexception error
                         adapterSecond = new AdapteSecond();
                         adapterSecond.notifyDataSetChanged(); 
                    }
            });
      }

        @Override
            public int getItemCount() {
                return (objectList != null? objectList.size():0);
            }

            public class ViewHolder extends RecyclerView.ViewHolder {
                public TextView data;

                public ViewHolder(View itemView) {
                    super(itemView);
                    data= (TextView) itemView.findViewById(R.id.text);        
                }
            }
        }

第二个适配器

    public class AdapterSecond extends 
                  RecyclerView.Adapter <AdapterSecond.ViewHolder> {

        private List<Object> objectList;
        private Context mContext;

        public AdapterSecond () {}

        public AdapterSecond (List<Object> list) { objectList= list; }

        @Override
        public AdapterSecond.ViewHolder onCreateViewHolder(ViewGroup parent, 
                        int viewType) {
            View view = LayoutInflater.from(parent.getContext())
                   .inflate(R.layout.item_list_2, parent, false);
            return new ViewHolder(view);
        }

        @Override
        public void onBindViewHolder(final AdapterSecond.ViewHolder holder, int position) {

            final Object object = objectList.get(holder.getAdapterPosition());
            holder.data2.setText(object.getData());

         }    
        @Override
        public int getItemCount() {
            return (objectList != null? objectList.size():0);
        }

        public class ViewHolder extends RecyclerView.ViewHolder {
            public TextView data2;

            public ViewHolder(View itemView) {
                super(itemView);
                data2= (TextView) itemView.findViewById(R.id.text2);
            }
        }
    }

似乎适配器的初始化顺序有问题。

只需确保在第一个适配器之前初始化第二个适配器

secondAdapter= new SecondAdapter();
firstAdapter = new FirstAdapter();

只需检查它们初始化的顺序!