gpt4 book ai didi

android - 使用 getActivity() 进行转换是否安全?

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:52 25 4
gpt4 key购买 nike

我正在编写一个应用程序,它有一个父级 Activity 和几个子级 Fragments。我正在尝试让 Fragment 与父 Activity 通信。我知道有几种方法可以做到这一点,包括创建一个接口(interface)并在父 Activity 中实现它。但是,我对这种方法很感兴趣:

ParentActivity activity = (ParentActivity) getActivity();
activity.someMethod();

这种方法需要的代码更少,也不那么复杂。但是,这种转换在生产代码中安全吗?还是接口(interface)更安全?

最佳答案

你可以用这个-

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();
}

这个方法是安全的。

关于android - 使用 getActivity() 进行转换是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24844314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com