android中fragment和activity之间相互通信
在用到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~
?
?
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。