使用Otto Event Bus在RecyclerViews之间传递数据

时间:2015-08-22 16:13:18

标签: android otto

我在ViewPager中包含的2个不同片段中有2个Recyclerviews。点击我的RecyclerviewA中的卡片时,我想将相应的对象传递给RecyclerviewB,目前我在RecyclerView中有一个onClick,其代码如下:

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

    holder.nameTextView.setText(list.get(position).getString("name"));
    holder.addressTextView.setText(list.get(position).getString("fromAddress"));

    final int pos = position;
    holder.acceptButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        ApplicationClass.bus.post(list.get(pos));

        }
    });

在RecyclerViewB中我有

    public PickupListAdapter(Context context, List<ParseObject> ddList) {
    this.ddList = ddList;
    this.mContext = context;
    ApplicationClass.bus.register(mContext);
}

@Subscribe
public void answerAvailable(ParseObject object) {
    ddList.add(object);
    notifyDataSetChanged();
}

在我的应用程序类中,我有:

public static Bus bus;

@Override
public void onCreate(){
    super.onCreate();
          bus = new Bus(ThreadEnforcer.MAIN);


}

未调用“answerAvailable”方法。关于我的实施,目前的错误是什么?

1 个答案:

答案 0 :(得分:0)

我只能从我的工作代码中看到一个变化。你能尝试改变这个:

 bus= new Bus(ThreadEnforcer.ANY);