我正在尝试将项目从一个适配器添加到另一个适配器。但是当我添加项目时,不会出现在另一个适配器的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);
}
点击添加按钮的图片
diplay添加项目的列表(从头开始添加“asd”。)
答案 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();
}
});
}