1. activity和fragment之间的通信
1. 接口回调。
2. 通过设置fragment的argument。
3. 通过getActivity()调用activity的公共方法。
4. 通过Intent启动activity 附加信息。
2. fragment之间的通信
1. 通过寄宿的activity获取另一个fragment的实例并调用其方法。
2. 接口回调
3. 使用广播
|
Intent intent = new Intent("showPro"); intent.putExtra("name", name); LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(intent); |
|
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(getActivity()); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("showPro"); BroadcastReceiver br = new BroadcastReceiver() { @Overridepublic void onReceive(Context context, Intent intent) { String key = intent.getStringExtra("name"); }; localBroadcastManager.registerReceiver(br,intentFilter); |
EventBus介绍
1. EventBus是一个Android端优化的发布和订阅事件消息总线,解决组件之间,组件与后台线程之间的通信,可以代替Intent Handler Broadcast 等在Fragment和activity之间传递消息。
implementation 'org.greenrobot:eventbus:3.1.1'
本文详细介绍了Android中Activity与Fragment间的通信方式,包括接口回调、Argument设置、公共方法调用及Intent信息附加;同时探讨了Fragment间的通信策略,如通过Activity获取实例、接口回调与广播机制;并引入EventBus作为优化的事件消息总线,用于组件间高效通信。
2193

被折叠的 条评论
为什么被折叠?



