如何在 Fragment 中获取对 LocationManager 的引用

Posted

技术标签:

【中文标题】如何在 Fragment 中获取对 LocationManager 的引用【英文标题】:How to get a reference to LocationManager inside a Fragment 【发布时间】:2012-10-29 15:58:23 【问题描述】:

我有一个扩展 Fragment 并实现 LocationListener 的类。 当我写

LocationManager myLocalManager =
(LocationManager)getSystemService(Context.LOCATION_SERVICE);

我收到编译时错误,因为方法 getSystemService 不是 Fragment 的方法。

我可以做些什么来创建LocationManager

【问题讨论】:

【参考方案1】:

在你的片段中简单地调用这个:

LocationManager mgr = 
(LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);

因此,您只需获取 Activity 并从那里调用 getSystemService()

编辑: 由于自 API 28 起已弃用 getActivity 方法,您可以使用:

LocationManager mgr = 
    (LocationManager)getContext().getSystemService(Context.LOCATION_SERVICE);

【讨论】:

谢谢,我很接近但无法以正确的方式得到它【参考方案2】:

试试这个代码 sn-p 它会工作。

代码:

LocationManager locationManager = (LocationManager)
getContext().getSystemService(Context.LOCATION_SERVICE);

【讨论】:

以上是关于如何在 Fragment 中获取对 LocationManager 的引用的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中获取Fragment的包名(不是Activity的)[重复]

android ViewPager+Fragment 如何在ViewPager的Activity中获取Fragment中的控件对象

如何在activity中获取fragment的控件,然后修改控件的内容,

如何在 MainActivity 和 Fragment 中正确获取 WifiManager 的实例

如何在 Fragment 中获取 Google Maps 对象

使用Fragment时如何获取控件Id以及如何跳转