Android自助餐之Fragment与Activity通信
查看全套目录
一 Fragment通知所在Activity
1.在Fragment
定义接口及接口对象
public interface OnXXEventListener {
public void onXXEvent(Object arg);
}
OnXXEventListener mListener;
2.Fragment
在onAttach
时检测所在Activity
时候实现该接口
public void onAttach(Activity activity) {
super.onAttach(activity);
// 检查Fragment所在Activity是否实现了上面定义的借口,若无则抛出异常
try {
mListener = (OnXXEventListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " didn't implement OnXXEventListener");
}
}
3.在Fragment
中需要通知Activity
的地方调用
mListener.onArticleSelected(object);
二 Fragment(通知者)通知另一个Fragment(被通知者)。
需要通知者Fragment
通知所在Activity
来通知被通知者Fragment
。因此前三步同上所述实现通知者Fragment
通知所在Activity
,第四步则是在Activity
实现接口的方法中通知被通知者Fragment
。
public void onXXEvent(Object arg) {
// 调用被通知者Fragmetn的公有方法来传递消息
fragment.publicMethod(arg);
}