Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 谷歌地图当前位置_Java_Android_Google Maps - Fatal编程技术网

Java 谷歌地图当前位置

Java 谷歌地图当前位置,java,android,google-maps,Java,Android,Google Maps,我有一个非常复杂的应用程序,有各种不同的功能。其中一个功能包括谷歌地图选项卡。应用程序的结构使得每个选项卡都是一个片段。 在这种特殊情况下,我很难声明我的谷歌地图对象来获取我当前的位置数据 这是相关代码 在这个代码实现中,当我试图声明mMap时,我得到一个空指针异常。如果删除getAvtivity()调用,eclipse会告诉我不能对非静态方法进行静态引用。如果我删除mMap行,我的应用程序将在一个选项卡中与谷歌地图一起工作(其他选项卡实现了所有工作的其他功能)。试试这个 GoogleMap m

我有一个非常复杂的应用程序,有各种不同的功能。其中一个功能包括谷歌地图选项卡。应用程序的结构使得每个选项卡都是一个片段。 在这种特殊情况下,我很难声明我的谷歌地图对象来获取我当前的位置数据

这是相关代码 在这个代码实现中,当我试图声明mMap时,我得到一个空指针异常。如果删除getAvtivity()调用,eclipse会告诉我不能对非静态方法进行静态引用。如果我删除mMap行,我的应用程序将在一个选项卡中与谷歌地图一起工作(其他选项卡实现了所有工作的其他功能)。

试试这个

GoogleMap mMap = ((SupportMapFragment) getFragmentManager()
                .findFragmentById(R.id.map)).getMap();
在您的xml中

<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />

能否包含布局xml

如果您的地图片段是
SupportMapFragment
com.google.android.gms.maps.SupportMapFragment
),请使用:

mMap=((SupportMapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap()

如果地图片段是
MapFragment
com.google.android.gms.maps.MapFragment
),请使用:

编辑: OP问题的实际答案是:
在布局XML中声明映射片段时,请确保使用了正确的类名。

为什么要创建
getView(…)
static?在
GpsClass
中,试着将代码放在natachfragments下,花一些时间将其附加到活动。在这种情况发生之前,有时我们会得到NullPointerException如果您像这样使用它会发生什么
mMap=((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.mymap)).getMap()
???@SimplePlan您的意思是什么?要使用v2,您的
片段
需要扩展
SupportMapFragment
而不是
片段
,正如我在问题中提到的那样。我不能那样做。无法从FragmentActivity类型对非静态方法getSupportFragmentManager()进行静态引用您的答案几乎正确。但是,必须调用getActivity()函数。如果不是,我会得到前面提到的静态方法错误。所以最后你的答案只对了一半。在这个答案中,我在哪里说过要使用getSupportFragmentManager..我说过要使用getFragmentManager()..但错误不在你身上..它在xml文件中没有..我也说了tat na..使用SupportMapFragment@Seahawksrdabest他不能从FragmentActivity类型中静态引用非静态方法getSupportFragmentManager()。他在问题中已经说过了。@Ani Fichadia:你间接地发现了我的解决方案。我所做的只是更改xml以匹配com.google.android.gms.maps.SupportMapFragment。然后砰的一声,它开始工作了@SeahawksRdaBest这是我也告诉过你的。你为什么不接受我的答案。请至少给我一票。@Lal
getSupportFragmentManager()
不可用,因为他使用的是
Fragment
而不是
FragmentActivity
,但是
getFragmentManager()
Fragment
中受支持@SeahawksRdaBest:是的,我犯了一个错误,在布局中声明地图片段时没有使用正确的类值。很高兴这对你有用:)对我上面所说的稍加澄清,如果你使用
getActivity().getSupportFragmentManager()
,这是合法的,因为
getActivity()
返回一个
FragmentActivity
(其中
getSupportFragmentManager()
是实际定义的)。但是,在
片段中,
getSupportFragmentManager()
未定义为方法,而
getFragmentManager()
定义为方法。只需使用
getFragmentManager()
而不是
getActivity().getSupportFragmentManager()
来查找片段就可以了
<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />
mMap = ((MapFragment) getFragmentManager ().findFragmentById (R.id.map)).getMap ();