首页 > 代码库 > Fragment与Activity通信
Fragment与Activity通信
在Fragment类中,有个方法 public void onAttach(Activity activity),在子Fragment中重写该方法,从该方法的参数中可以看出,该方法中的Activity是加载Fragment的Activity,所以可以通过该方法寻找Fragment的Activity;
在Activity类中,有个方法 public void onAttachFragment(Fragment fragment),api中是这么描述该方法的作用:
/**
* Called when a fragment is attached to the activity.
*/
所以在子Activity中重写该方法,可以通过该方法寻找Activity所加载的Fragment ;
可以定义两个接口,例如:
public interface GetActivityMethod { void getActivityMethod(); } public interface GetFragmentMethod { void getFragmentMethod(); }Activity实现GetActivityMethod接口,Fragment实现GetFragmentMethod接口;在onAttch(Activity activity)和 onAttachFragment(Fragment fragment)方法中,分别如下所示:
private GetActivityMethod activityMethod; @Override public void onAttach(Activity activity) { super.onAttach(activity); try { activityMethod= (GetActivityMethod) activity; } catch (Exception e) { e.printStackTrace(); } }
private GetFragmentMethod getFragmentMethod; @Override public void onAttachFragment(Fragment fragment) { super.onAttachFragment(fragment); try { getFragmentMethod= (GetFragmentMethod) fragment; } catch (Exception e) { e.printStackTrace(); } }
之后就可以在想调用的地方调用相应的接口方法了!如在Activity中调用Fragment 的方法
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (getFragmentMethod!=null)getFragmentMethod.getFragmentMethod(); } });
Fragment与Activity通信
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。