Android 如何在点击时更新我的地图在谷歌地图中的位置?

Android 如何在点击时更新我的地图在谷歌地图中的位置?,android,android-studio,google-maps,android-fragments,Android,Android Studio,Google Maps,Android Fragments,在我的应用程序中,我有一个按钮,可以从数据库中提取经度和纬度,并将它们存储到名为bgworker的类中存储的两个变量中,然后这些变量将显示在屏幕上,如下所示: 然后,我将变量与代码一起发送到我的Google Maps片段: publicstaticvoidupdatemap(){ double Longitute=parseDouble(bgWorker.ReturnLong()); 双纬度=parseDouble(bgWorker.ReturnLat()); 板条位置=新板条(纬度、经度);

在我的应用程序中,我有一个按钮,可以从数据库中提取经度和纬度,并将它们存储到名为bgworker的类中存储的两个变量中,然后这些变量将显示在屏幕上,如下所示:

然后,我将变量与代码一起发送到我的Google Maps片段:

publicstaticvoidupdatemap(){
double Longitute=parseDouble(bgWorker.ReturnLong());
双纬度=parseDouble(bgWorker.ReturnLat());
板条位置=新板条(纬度、经度);
addMarker(新的MarkerOptions().position(位置).title(“位置”);
googleMap.moveCamera(CameraUpdateFactory.newLatLng(位置));
}
但是,贴图片段本身从不更新,坐标始终设置为0,0 当变量更新时(点击按钮),如何更新地图上的位置

我遇到的两个问题是,如果我将Googlemap设为全局,Googlemap为null,我会得到错误

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'com.google.android.gms.model.Marker com.google.android.gms.maps.maps.GoogleMap.addMarker(com.google.android.gms.maps.model.MarkerOptions)'
但是,如果我将Googlemap设置为本地,我就无法从父方法中的按钮传递它,或者至少,我不知道如何传递它

我在网上看到的大多数教程都是关于使用用户当前位置更新地图的,而不是静态变量


请帮我更新一下我的地图位置点击

我有一个想法,让你的谷歌地图成为本地的,在onclick pass Googlemap in函数中,把你的UpdateMap改为

publicstaticvoidupdatemap(谷歌地图){
double Longitute=parseDouble(bgWorker.ReturnLong());
双纬度=parseDouble(bgWorker.ReturnLat());
板条位置=新板条(纬度、经度);
addMarker(新的MarkerOptions().position(Location).title(“位置”);
地图。移动摄像机(CameraUpdateFactory.newLatLng(位置));
}
//还有一张谷歌地图
您的_按钮.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
更新地图(谷歌地图)
}

});不确定这是否符合SO规则,但对于将来有相同问题的人,我的答案是将GoogleMap片段存储在与按钮相同的活动中,使用
startActivity(getIntent())使按钮刷新整个活动
然后在googlemap活动中,获取坐标


这意味着每次谷歌地图加载时,它都会抓取新的坐标并刷新到新的位置!我的错误是每次按下按钮都试图创建一个新的google地图,您只需要一个。

这不起作用,因为包含我按钮的类不包含任何google地图。如果我制作一个本地googlemap,与制作googlemaps全局一样,它是一个空引用对象。你是否插入了你的对象googlemap true?持有按钮的类不能持有googlemaps,因此我不能插入一个。如果我强制类保留GoogleMaps以插入GoogleMap,我会得到上面显示的错误,如果我试图调用GoogleMap函数来创建GoogleMap,我会得到相同的错误。你能将图像错误设置为与以前完全相同的错误吗