android Activity与Fragment之间的通信
2015-11-19 15:20
453 查看
一、使用onAttach方法实现
1、activity----->fragment
activity代码:private OnMainListener mainListener; // 绑定接口 @Override public void onAttachFragment(Fragment fragment) { try { mainListener = (OnMainListener)fragment; } catch (Exception e) { throw newClassCastException(this.toString() + " must implementOnMainListener"); } super.onAttachFragment(fragment); } // 接口 public interface OnMainListener { public void onMainAction(); }onMainAction方法是activity向fragment发出通信的方法,里面可以放参数, 在要发出通信的地方直接调用该方法即可。
fragment代码:
public class MyFragment extends Fragment implementsOnMainListener { …………………… @Override public voidonMainAction() { //这里是实现通信的接口 }
2、fragment ---->activity
fragment代码:private OnFragmentListener mListener; @Override public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentListener) activity; } catch (ClassCastException e) { throw newClassCastException(activity.toString() + " must implement OnFragmentListener"); } } public interface OnFragmentListener { public void onFragmentAction(intflag); }activity代码:
public class MainActivity extends Activity implements OnFragmentListener{ ……………… // 实现接口方法 @Override public voidonFragmentAction(int flag) { //实现通信的接口 } }
二、使用handler通信
接收方代码:public Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg != null) { switch (msg.what) { case BaseConstant.SHOW_CHECK_IN: right_text.setText(getString(R.string.calendar_checkin1)); break; case BaseConstant.SHOW_CHECK_OUT: right_text.setText(getString(R.string.calendar_checkout1)); break; case BaseConstant.SHOW_CHECK_NOTHING: right_text.setText(""); break; default: break; } } } };
发送方代码:
获得handler实例
MarketDetailActivity activity = (MarketDetailActivity) getActivity(); handler = activity.handler;
发送消息
handler.sendEmptyMessage(flag);
三、使用BroadcastReceiver通信
这里就不贴代码了,可以参考BraodcastReceiver的相关使用使用。相关文章推荐
- Android编程之代码创建布局实例分析
- Android5.0(lollipop)新特性介绍(一)
- android 系统目录及adb
- android 设置 EditTextView不自动获得焦点
- Android自动换行标签
- Android SwipeRefreshLayout控件
- android 博客园
- Android如何判断系统语言
- Android使用特殊权限的一种代码实现
- android从零单排之百度地图的调用
- Android拨号历程函数调用
- Android音频系统之AudioFlinger(一)
- Android编程之防止反编译的实现方法
- Android基础入门教程——10.13 传感器专题(4)——其他传感器了解
- Android图片加载神器之Fresco-圆形圆角二合一教程[Java代码实现圆形圆角效果]
- 【FastDev4Android框架开发】RecyclerView完全解析,让你从此爱上它(二十八)
- Android图片加载神器之Fresco-更灵活的设置加载特效[Java代码实现XML效果]
- Android context 文件模式
- Android项目重构的一些认识和思考
- Tesseract OCR Android