首页 > 移动平台 > 详细

android中fragment和activity之间相互通信

时间:2014-11-14 02:18:27      阅读:351      评论:0      收藏:0      [点我收藏+]

在用到fragment的时候,老是会遇到一个问题,就是fragment与activity之间的通信。下面就来记录一下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发出通信的方法,里面可以放参数, 在要发出通信的地方直接调用该方法即可。

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);

}

?

public class MainActivity extends Activity implements OnFragmentListener{

………………

// 实现接口方法

@Override

public void onFragmentAction(int flag) {

//实现通信的接口

}

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

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

end~

?

?

android中fragment和activity之间相互通信

原文:http://haiyang08101.iteye.com/blog/2155537

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!