Android-如何将片段对象作为活动对象传递
我有一个接受活动作为对象的方法。该方法还基于特定的业务逻辑使用该活动对象启动新的活动。 但是我需要从片段内部使用这个方法Android-如何将片段对象作为活动对象传递,android,kotlin,Android,Kotlin,我有一个接受活动作为对象的方法。该方法还基于特定的业务逻辑使用该活动对象启动新的活动。 但是我需要从片段内部使用这个方法 如何将片段对象转换为活动对象。也许这是值得一写的答案/解释 你在问: 如何将片段对象转换为活动对象 您无法真正转换这些,但您可以通过调用以下命令来获取片段所附加到的活动: requireActivity() 其内部功能: @NonNull public final FragmentActivity requireActivity() { FragmentActivi
如何将片段对象转换为活动对象。也许这是值得一写的答案/解释 你在问: 如何将片段对象转换为活动对象 您无法真正转换这些,但您可以通过调用以下命令来获取片段所附加到的活动:
requireActivity()
其内部功能:
@NonNull
public final FragmentActivity requireActivity() {
FragmentActivity activity = getActivity();
if (activity == null) {
throw new IllegalStateException("Fragment " + this + " not attached to an activity.");
}
return activity;
}
您还说您正在考虑使用:
activity as Activity
这里的活动实际上是一个getter,所以它调用getActivity,getActivity可以为null,而您可以强制转换它,我想,这样做更安全:
activity?.let{ instance ->
//use instance
}
如果您有一个片段的实例可用,那么假设:
val foo : Fragment
您仍然可以只使用foo.requirection或foo.activity而不是将片段投射到活动中,这被认为是不好的做法您可以创建一个Util对象并在其中公开您的方法,这样,它就可以从任何需要的地方调用。我想不出你为什么要围绕着这个函数传递一个活动。这个函数在不同的模块中,并且在一个非UI类中,它们只接受活动对象。我现在需要从我的片段中调用这个函数,你使用的是什么语言?Kotlin。我想知道把活动当作活动来使用是否有效。我知道这不是一个好的做法,那么还有其他选择吗?