如何在 Kotlin 中获取 ClusterManager 的上下文

How to get Context for ClusterManager in Kotlin

我可以使用哪个上下文在 Kotlin 中初始化 ClusterManager Android?

var clusterManager: ClusterManager<MarkerCluster>? = null
clusterManager = ClusterManager(context, map);

Which Context i could use to init the ClusterManager in Kotlin Android?

这取决于您使用的地方clusterManager = ClusterManager(context, map);

例如,如果您在任何 activity 中使用它,请像这样使用

clusterManager = ClusterManager(this, map); 
// or 
clusterManager = ClusterManager(this@LoginActivity, map);

例如,如果您在任何片段中使用它,请像这样使用

class FragmentOne : Fragment() {

    var mContext: Context? = null

    override fun onAttach(context: Context) {
        super.onAttach(context)
        mContext = context

    }

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        val rootView = inflater.inflate(R.layout.fragment_one, container, false)
        clusterManager = ClusterManager(mContext, map)
        return rootView
    }

}

注意

您可以使用 getActivity()getContext() 在片段 context 中获取 context

但是 getActivity() 可以 return null 所以我建议你应该使用 onAttach() 在 fragment

中获取 context