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~

转载于:https://www.cnblogs.com/xiaoleleblog/p/4375731.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值