我正在编写一个有父级的应用程序Activity
和几个孩子Fragments
。我正在尝试让片段与父活动进行通信。我知道有几种方法可以做到这一点,包括创建一个接口并在父活动中实现它。不过,我对这个方法很感兴趣:
ParentActivity activity = (ParentActivity) getActivity();
activity.someMethod();
这种方法需要更少的代码并且不太复杂。但是,在生产代码中进行这种转换安全吗?还是接口更安全?
你可以使用这个 -
private ParentActivity callback;
@Override
public void onAttach(Activity activity)
{
//callback = (ParentActivity ) activity;
// make sure there is no cast exception
callback = (ParentActivty.class.isAssignableFrom(activity
.getClass())) ? (ParentActivity) activity : null;
super.onAttach(activity);
}
@Override
public void onDetach()
{
callback = null;
super.onDetach();
}
现在,当您进行任何方法调用时,请像这样调用它 -
if(callback!=null)
{
callback.someMethod();
}
这个方法是安全的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)