Android 有没有办法从fragmentmanager获取上下文?
我有一个扩展功能,Android 有没有办法从fragmentmanager获取上下文?,android,kotlin,kotlin-extension,Android,Kotlin,Kotlin Extension,我有一个扩展功能,FragmentManager作为接收器。我至少在75个地方使用过它。现在我想访问该扩展中的SharedReference。我所需要的只是函数中的上下文。有什么方法可以访问上下文吗 下面是函数的外观 inline fun FragmentManager?.loadFragment(...){ .... // Loading of fragment // inside I want context } 您可以从FragmentManager获取上下文,但我不建议这样做
FragmentManager
作为接收器。我至少在75个地方使用过它。现在我想访问该扩展中的SharedReference
。我所需要的只是函数中的上下文。有什么方法可以访问上下文吗
下面是函数的外观
inline fun FragmentManager?.loadFragment(...){
....
// Loading of fragment
// inside I want context
}
您可以从FragmentManager
获取上下文,但我不建议这样做
inline fun FragmentManager?.loadFragment() {
// Get the context of the last fragment added to the fragment manager
val context = this?.fragments?.last()?.context
}
上面的答案返回null
context
,因为@Thomas不建议使用。所以我引用了。重载方法loadFragment
,使用上下文作为参数..我想是这样的,我使用了可选的参数,但我不能这样做,因为它在多个地方使用,这就是我问的原因。您无法从片段管理器
获取上下文,所以我认为这是您应该做的。。在某些情况下,您可能不需要上下文,因此可以利用这两种变体。我就是这样做的,唯一的区别是我使用了findFragmentById
,我对上下文的需要在第二个片段之后。这就解决了我的问题。谢谢你的帮助