zoukankan      html  css  js  c++  java
  • EventBus实现activity跟fragment交互数据

    最近老是听到技术群里面有人提出需求,activity跟fragment交互数据,或者从一个activity跳转到另外一个activity的fragment,所以我给大家介绍一个开源项目,EventBus.在 TextView+Fragment实现底部导航栏   这个Demo的基础上实现fragment跟activity的传参,从设置界面的activity如何跳转到首页的推荐.


    Android EventBus是345大神 告诉我的.然后自己网上找资料学习了下,简单方便好用.我参考的是鸿洋大神的博客:http://blog.csdn.net/lmj623565791/article/details/40920453


    效果图如下:



    好了言说正传,接下来如何让你的项目不再担心activity跟fragment传参跳转的烦恼.

    一:使用Android EventBus需要jar包一个,文章末尾我会贴出demo下载地址.里面就会包含

    二:接收EventBus事件的类需要做以下几个工作

         1).在onCreate中把当前类注册到EventBus中,EventBus就是一个单例模式.

    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		EventBus.getDefault().register(this);
    		
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    	}

         2).记得在onDestroy方法中取消注册.

    	@Override
    	public void onDestroy() {
    		super.onDestroy();
    		EventBus.getDefault().unregister(this);//取消注册
    	}

         3).写一个onEvent开头的方法来接收别的页面发送过来的事件,方法必须public修饰,参数类型我们自己定义,但是一定要记住,发送消息的时候也必须这个类型.

    	/**
    	 * 这里用到的了EventBus框架  博客教程:http://blog.csdn.net/lmj623565791/article/details/40920453
    	 * @param type
    	 */
    	public void onEventMainThread(Integer type){
    		Log.d("XX", "EventBus收到int:"+type);
    		Toast.makeText(this, "处理eventbus请求", 0).show();
    		if(type==LOGOUT){//登出
    			tvMain.performClick();//模拟点击首页
    			mainFragment.setCurrentItem(1);//跳转到推荐页面
    		}
    	}

         4).LOGOUT常量是int类型,在MainActivity中定义

         public static final int LOGOUT=1;//退出

     三.发送事件的类就一行代码就行.我们可以看到post方法中传参是一个int类型常量,而onEventMainThread方法中的参数是int的封装类型,所以在此提醒大家,类型一

           定要一致

         EventBus.getDefault().post(MainActivity.LOGOUT);


    好了,eventbus就讲解到这里了,对于我们使用者来说比较简单,没有几行代码,基本都封装好了,站在巨人的肩膀上真好,如果想分析源码的,可以看鸿洋大神的博客.比我的详细多了.


    点击下载源码

  • 相关阅读:
    Linux运维工程师需要掌握什么才能胜任工作呢
    我眼中的Linux系统和红帽RHCE认证
    Linux系统从零到高手的进阶心得
    我在大学毕业后学习Linux系统的心得经验
    装RAC跑脚本报错
    Oracle rac11g 安装报INS41112
    Oracle升级11.2.0.3-11.2.0.4(Windows)
    防存储掉线安装监控软件
    跨平台迁移数据库windows-Linux
    linux crontab -e生成日期格式
  • 原文地址:https://www.cnblogs.com/yishaochu/p/5078597.html
Copyright © 2011-2022 走看看