(一)

原文:http://www.2cto.com/kf/201405/298326.html

android中fragment和activity之间相互通信
2014-05-06 我来说两句 来源:android中fragment和activity之间相互通信
收藏 我要投稿

在用到fragment的时候,老是会遇到一个问题,就是fragment与activity之间的通信。下面就来记录一下activity和fragment之间 通过实现接口来互相通信的方法。

1. activity 向fragment发出通信,就这么写:

private OnMainListener mainListener;

// 绑定接口

@Override

public void onAttachFragment(Fragmentfragment) {

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 发出通信:(和前面差不多)

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中 实现接口:

publicclass MainActivityextendsActivityimplementsOnFragmentListener{

………………

// 实现接口方法

@Override

public voidonFragmentAction(int flag) {

//实现通信的接口

}

两者都是通过接口的实现来进行通信的,重要的地方就是分别在onAttachFragment和 onAttach方法中进行接口绑定。

通信还有其他方法的,比如广播、静态handler等,这里就不赘述了。

end~

(二)

通过从FragmentManager中获得的Fragment引用也能够调用Fragment中的方法,使用findFragmentById()或findFragmentByTag()方法获取Fragment引用,例如:

通过从FragmentManager中获得的Fragment引用也能够调用Fragment中的方法,使用findFragmentById()或findFragmentByTag()方法获取Fragment引用,例如:

更多相关文章

  1. Android studio Run 出现 红叉 AndroidRunConfigurationType 问
  2. 如何在Log中模拟方法e
  3. fragment 状态保存时怎么执行一些需要在onResume、onPause方法里
  4. 同时兼容高低版本的setBackground跟setTextColor方法
  5. C# PC客户端与Android服务端的Socket同步通信(USB)
  6. 四极管:I2CTools编译方法
  7. 检查ArrayList是否只包含null值的方法。
  8. 不同Android版本设备正确获取屏幕分辨率的通用方法
  9. studio更新时候,不小心点了ignore,无法更新的解决方法

随机推荐

  1. android aar 使用
  2. Android 打造编译时注解解析框架 这只是
  3. android 权限大全总库
  4. Android 源码下载
  5. ANDROID音频系统散记之一:A2dpAudioInterf
  6. 相对布局(RelativeLayout)
  7. LinearLayout 属性详解
  8. [Android 数据库] Android数据库总结
  9. Android(安卓)studio 入门教程(案例)
  10. Android(安卓)java调用go语言,.go文件生成