Android Studio刷新RecyclerView项目

时间:2018-01-24 07:08:52

标签: java android android-fragments recycler-adapter

我正在尝试将项目从一个适配器添加到另一个适配器。但是当我添加项目时,不会出现在另一个适配器的recyclerview列表中。

ContactDataAdapter.java

@Override
public void onBindViewHolder(final ContactDataAdapter.ViewHolder holder, int position) {
    holder.titleTv.setText(arrList.get(position).toString());
    holder.conIv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            CallFragment cf = new CallFragment();
            //CallDataAdapter cd = new CallDataAdapter();
            String t = holder.titleTv.getText().toString();
            cf.addItem(t.toString());
            //cd.addData(t);
            Toast.makeText(view.getContext(), "Added " + t, Toast.LENGTH_SHORT).show();
        }
    });
}

CallFragment.java

 public void addItem(String title) {
    adapter.addData(title.toString());
    //adapter.notifyItemRangeChanged(0,data.size());
}

CallDataAdapter.java

public void addData(String title) {
    dataList.add(title);
    notifyDataSetChanged();
    notifyItemRangeChanged(0, dataList.size());
    notifyItemInserted(pos + 1);
}

点击添加按钮的图片

enter image description here

diplay添加项目的列表(从头开始添加“asd”。)

enter image description here

1 个答案:

答案 0 :(得分:0)

首次设置EventBus

定义事件:

 public static class MessageEvent { 

   public  String title;
    }
CallFragment中的

声明

@Subscribe(threadMode = ThreadMode.MAIN)  
public void onMessageEvent(MessageEvent event) {  
   adapter.addData(title.toString());
};

从您设置的ContactDataAdapter

中注册片段
@Override
 public void onStart() {
     super.onStart();
     EventBus.getDefault().register(this);
 }

 @Override
 public void onStop() {
     super.onStop();
     EventBus.getDefault().unregister(this);
 }

调用活动

@Override
public void onBindViewHolder(final ContactDataAdapter.ViewHolder holder, int position) {
    holder.titleTv.setText(arrList.get(position).toString());
    holder.conIv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            MessageEvent event=new MessageEvent();
            event.title= holder.titleTv.getText().toString();
            EventBus.getDefault().post(event);

            //CallFragment cf = new CallFragment();
            //CallDataAdapter cd = new CallDataAdapter();
            //String t = holder.titleTv.getText().toString();
            //cf.addItem(t.toString());
            //cd.addData(t);
            Toast.makeText(view.getContext(), "Added " + t, Toast.LENGTH_SHORT).show();
        }
    });
}