永发信息网

eventbus3.0怎么在两个界面间传递数据

答案:1  悬赏:10  手机版
解决时间 2021-11-26 07:01
eventbus3.0怎么在两个界面间传递数据
最佳答案
每个页面都需要在生命周期中注册和注销EventBus

  代码中使用了一个接口定义了一些方法

  public interface IText {

  void getText(Text text);
  void finish();
  }

  使用一个类实现这些方法,使用这个实现类来处理需要执行的逻辑
  public class TextImpl implements IText {
  private static final String TAG = TextImpl.class.getSimpleName();

  public TextImpl() {
  EventBus.getDefault().register(this);
  }

  @Override
  public void getText(Text text) {
  Log.e(TAG, "调用getText:" + text);
  EventBus.getDefault().post(text, "texttt");
  }

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

  在方法中使用EventBus.getDefault().post(Object obj,String tag);发送内容,obj可以是对象、字符串等,tag就是对应要接收的方法的注解名。
  在第一页中实现对应tag注解的方法,用以更新textView内的数据:
  @Subscriber(tag = "texttt")
  private void changeText(Text text) {
  Log.e(TAG, "hhhhhhhhhhhhh");
  mTextView.setText(text.getText());
  }

  这样的话,EventBus就会把Text这个实体对象传递给第一个Activity,然后根据对应的方法在主线程中更新UI。
  需要注意,没有在栈中的Activity是无法传递数据的(例如直接打开第一个Activity,然后传递给尚未打开的第二个Activity,就不能传递。)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我13岁女孩,和18岁男生发生了关系会不会被发
丹东惠华新业汽车销售服务有限公司地址在什么
玛丽昨天在公园里听了一场音乐会 用英语怎么
解答一个几何题初一的 第二个图的过程
Mum,let me read this story you.
50÷2.5=20什么意思?
中国学历文凭是怎么排行
华为下载游戏在哪里
梦见大黑蜘蛛往身上爬
钓鱼 用豆面掺其他什么东西做饵?
zippo火机上盖向左偏怎么办
计划去平遥旅游然后从太原回家,请问平遥到太
求2001版陈浩民封神榜财富网盘或者迅雷下载的
湖南酸陵市博物馆属于哪个市
不超频,不喜欢折腾.是选I7 7700还是带7700K
推荐资讯
曲线y=x3-3x2有一条切线与直线3x+y=0平行,则
龙记百货在哪里啊,我有事要去这个地方
我想搞卖棉鞋的广告语棉鞋全部男女20元一双
保定哪有旱冰场
冠林门禁卡系统中待下载任务清单中为什么有删
2060年后会有傻妞这个功能吗
李世民死后,为何是李治继位,太子怎么了
我是一名学生,但我怎么老想靠穿名牌衣服来提
本科自动化专业去潍柴动力从事什么工作,需要
咸阳银华乳业有限责任公司怎么样?
停简单管理系统打不开
photoshop弧形文字效果怎么做
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?