android中fragment和activity之间相互通信
2016-01-15 14:33
525 查看
(转载)http://haiyang08101.iteye.com/blog/2155537
在用到fragment的时候,老是会遇到一个问题,就是fragment与activity之间的通信。下面就来记录一下activity和fragment之间 通过实现接口来互相通信的方法。
1. activity 向fragment发出通信,就这么写:代码
private OnMainListener mainListener;
// 绑定接口
@Override
public void onAttachFragment(Fragmentfragment) {
try {
mainListener = (OnMainListener)fragment;
} catch (Exception e) {
throw new ClassCastException(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 发出通信:(和前面差不多,把它调过来用就可以)
Java代码
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 void onFragmentAction(int flag) {
//实现通信的接口
}
两者都是通过接口的实现来进行通信的,重要的地方就是分别在onAttachFragment和 onAttach方法中进行接口绑定。
通信还有其他方法的,比如广播、静态handler等,这里就不赘述了。
end~
在用到fragment的时候,老是会遇到一个问题,就是fragment与activity之间的通信。下面就来记录一下activity和fragment之间 通过实现接口来互相通信的方法。
1. activity 向fragment发出通信,就这么写:代码
private OnMainListener mainListener;
// 绑定接口
@Override
public void onAttachFragment(Fragmentfragment) {
try {
mainListener = (OnMainListener)fragment;
} catch (Exception e) {
throw new ClassCastException(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 发出通信:(和前面差不多,把它调过来用就可以)
Java代码
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 void onFragmentAction(int flag) {
//实现通信的接口
}
两者都是通过接口的实现来进行通信的,重要的地方就是分别在onAttachFragment和 onAttach方法中进行接口绑定。
通信还有其他方法的,比如广播、静态handler等,这里就不赘述了。
end~
相关文章推荐
- Android Activity中onStart()和onResume()的区别分析
- Android菜鸟进阶之路二-抽屉式导航
- Android进程/线程通信方式
- Android获取View宽高的几种方式
- android中心类库
- Android圆角矩形创建工具RoundRect类
- Android用ContentProvider开发通讯录
- Android菜鸟进阶之路一-Android基础
- 深入理解Android View
- Android 第三方开源库收集整理(转)
- Android沉浸式状态栏实现
- Android TextWatcher使用详解
- Android Studio开发工具的设置
- Android LruCache 缓存 类 源码 注解 分析
- Android退出应用最优雅的方式
- android studio 开启genymotion 出现"failed to create framebuffer image"
- android 顶部状态栏遮盖
- Android开发之EditText属性详解
- <安卓那点事>简单短信发送器
- android自定义控件学习(一)单行横向标签并做溢出处理