fragment与activity之间的通信
1.直接在一个Fragment中调用另外一个Fragment中的方法
ContentFragment cf = (ContentFragment) getActivity() .getFragmentManager().findFragmentById( R.id.content_fg); cf.showPro(name);
@Override
public void onAttach(Activity activity) { super.onAttach(activity); if (activity != null) { cat = (Cat) activity; }
}
在fragment需要的地方调用 cat.play();
3 广播 封装的工具类
/*** [A brief description]* <p/>* //在任何地方发送广播* BroadcastManager.getInstance(mContext).sendBroadcast(FindOrderActivity.ACTION_RECEIVE_MESSAGE);* <p/>* //页面在oncreate中初始化广播* BroadcastManager.getInstance(mContext).addAction(ACTION_RECEIVE_MESSAGE, new BroadcastReceiver(){** @author huxinwu* @version 1.0* @Override public void onReceive(Context arg0, Intent intent) {* String command = intent.getAction();* if(!TextUtils.isEmpty(command)){* if((ACTION_RECEIVE_MESSAGE).equals(command)){* //获取json结果* String json = intent.getStringExtra("result");* //做你该做的事情* }* }* }* });* <p/>* //页面在ondestory销毁广播* BroadcastManager.getInstance(mContext).destroy(ACTION_RECEIVE_MESSAGE);* @date 2015-9-17**/
public class BroadcastManager {private Context mContext;private static BroadcastManager instance;private Map<String, BroadcastReceiver> receiverMap;/*** 构造方法** @param context*/private BroadcastManager(Context context) {this.mContext = context;receiverMap = new HashMap<String, BroadcastReceiver>();}/*** [获取BroadcastManager实例,单例模式实现]** @param context* @return*/public static BroadcastManager getInstance(Context context) {if (instance == null) {synchronized (BroadcastReceiver.class) {if (instance == null) {instance = new BroadcastManager(context);}}}return instance;}/*** 添加,定义一个匿名内部类的广播** @param*/public void addAction(String action, BroadcastReceiver receiver) {try {IntentFilter filter = new IntentFilter();filter.addAction(action);mContext.registerReceiver(receiver, filter);receiverMap.put(action, receiver);} catch (Exception e) {e.printStackTrace();}}/*** 发送广播** @param action 唯一码*/public void sendBroadcast(String action) {sendBroadcast(action, "");}/*** 发送广播** @param action 唯一码* @param obj 参数*/public void sendBroadcast(String action, Object obj) {Intent intent = new Intent();intent.setAction(action);intent.putExtra("result", new Gson().toJson(obj));mContext.sendBroadcast(intent);}/*** 发送参数为 String 的数据广播** @param action* @param s*/public void sendBroadcast(String action, String s) {Intent intent = new Intent();intent.setAction(action);intent.putExtra(AppField.result, s);mContext.sendBroadcast(intent);} public void sendBroadcast(String action, int s) {Intent intent = new Intent();intent.setAction(action);intent.putExtra(AppField.result, s);mContext.sendBroadcast(intent);}/*** 销毁广播** @param action*/public void destroy(String action) {if (receiverMap != null) {BroadcastReceiver receiver = receiverMap.get(action);if (receiver != null) {mContext.unregisterReceiver(receiver);}}}
}
fragment与activity之间的通信相关推荐
- Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)
[正文] 一.接口回调的简单引入: 我们先来看一个简单的接口回调的例子: 新建一个Java工程,然后新建一个包.然后新建一个A.java文件: A.java代码如下: 1 package com.cn ...
- Android(Fragment和Activity之间通信)
Fragment的使用可以让我们的应用更灵活的适配各种型号的安卓设备,但是对于Fragment和Activity之间的通信,很多朋友应该比较陌生,下面我们就通过一个实例来看一看如何实现. 一.Acti ...
- 【Android 应用开发】Activity生命周期 与 Activity 之间的通信
一. Activity生命周期 上图 1. Activity状态 激活状态 : Activity出于前台 , 栈顶位置; 暂停状态 : 失去了焦点 , 但是用户仍然可以看到 , 比如弹出一个对话框 , ...
- Android中BroadCast与Activity之间的通信
在看本文之前,假设你对于Android的广播机制不是非常了解.建议先行阅读我转载的一篇博文:图解 Android 广播机制. 因为本案例比較简单,故直接在此贴出代码,不做过多的阐述. 先上效果截图: ...
- 静态注册fragment_Fragment的静态和动态添加方式以及Fragment和Activity之间的通信方式...
一.静态添加方式:创建好Fragment之后,在需要使用碎片的Activity的布局文件中添加 标签. 二.动态添加方式:先创建好fragment的布局文件,然后创建一个继承自Fragment的 类( ...
- fragment与activity之间的信息传递的两种方式
因为Fragment和Activity一样是具有生命周期,不是一般的bean通过构造函数传值,会造成异常. fragment与activity之间的信息传递的两种方式: 1.第一种方式,也是最常用的方 ...
- Activity——两个Activity之间的通信
目录 两个Activity之间的通信 第一个Activity 第二个Activity 不积跬步,无以至千里:不积小流,无以成江海.要沉下心来,诗和远方的路费真的很贵! 两个Activity之间的通信 ...
- Android Fragment和Activity之间的交互方式
Android应用主要的UI框架:TabLayout+ViewPager+Fragment组合方式+宿主Activity 在这样的框架之下,就会涉及到很多控件的交互,fragment与activity ...
- Fragment与Activity之间的相互通信
https://blog.csdn.net/u012702547/article/details/49786417 https://blog.csdn.net/carson_ho/article/de ...
最新文章
- apache httpd 1
- C语言退出多层嵌套循环技巧
- 【Flutter】监听滚动动作 控制组件 透明度渐变 ( 移除顶部状态栏空白 | 帧布局组件 | 透明度组件 | 监听滚动组件 )
- 摩托罗拉能否追回逝去的那些年?
- Win11关机后自动开机怎么办 Win11关机后自动开机的解决方法
- 信息学奥赛一本通(1130:找第一个只出现一次的字符)
- 【Python】实现最大最小距离算法
- 算术基本定理“质数分解唯一性的证明”:古典方法与现代方法
- 序列化---fastjson使用
- 【强烈推荐】蒋勋细说《红楼梦》
- python安装失败找不到指定路径_解决安装python库时windows error5 报错的问题
- 家庭上网用路由器和ADSL的连接
- 记录一次bypy使用提示无法创建目录错误
- 测试LOL帧数的软件,lol手游画质帧率修改器
- matlab用于试验设计回归分析实验结果的例子
- ssm房屋中介管理系统毕业设计(附源码、运行环境)
- 四种快速简单添加视频字幕的方法,总有一款适合你
- 为什么我们创业失败了和选择创业公司的思考
- 移动硬盘提示格式化怎么办怎么恢复数据?
- 【硕士论文】《动态场景下的语义三维地图构建 》西南科技大学 余东应
热门文章
- oracle集群服务删除,删除 Support for Oracle RAC
- java word流_(word)java中字节流示例.doc
- java原生的ajax怎么写,用原生js实现 ajax方法
- 建立一个lstm_基于LSTM的双色球预测(一)
- mysql查出倒序第一条数据_[数据库]mysql 记录根据日期字段倒序输出
- OpenShift 4 - 直接将Web应用当成Serverless运行
- 微软在 ARM 上成功移植 OpenJDK for Windows 10
- 迁移潮来袭!数十个项目宣布即将停止支持 Python 2
- 使用EntityFramework Core和Enums作为字符串的ASP.NET Core Razor页面——第一部分
- 网易逆水寒服务器型号,从服务器爆满到无人问津的经典游戏