我可以使用哪种上下文来初始化Kotlin Android中的ClusterManager?
var clusterManager: ClusterManager<MarkerCluster>? = null
clusterManager = ClusterManager(context, map);
最佳答案
它取决于您在哪里使用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
但是
getActivity()
可以返回null
,所以我建议您应该使用onAttach()
在片段中获取context