我试着更好地解释一下: 我的应用程序有一个标签栏(TabHost),其中两个标签是两个活动,每个活动都有一个地图。 当我点击第一个标签时,我得到了地图,我可以随心所欲地使用它。当我点击第二个时,我得到了SAME地图,上面有相同的标记和相同的路径,我甚至无法移动地图。我不希望它这样做。每个活动都必须使用不同的地图。
我正在使用v2地图,这两项活动扩展了android.support.v4.app.FragmentActivity。
请注意,如果我先点击第二个活动,我可以根据需要使用地图,并在第一个活动中重复出现问题。
我没有重复使用!一切都有不同的名字,ids,ecc ......
请帮忙!
P.S。这是我用来初始化地图的代码(在一个活动中):
private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
Logger.log("mMap = null");
// Try to obtain the map from the SupportMapFragment.
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapFollow))
.getMap();
mMap.getUiSettings().setCompassEnabled(false);
mapContainer = getSupportFragmentManager().findFragmentById(R.id.mapFollow).getView();
// Check if we were successful in obtaining the map.
if (mMap == null) {
//TODO: dialog error map.
}
}
}
每次我在两个活动之间切换时,我都会收到“mMap = null”日志......
答案 0 :(得分:1)
问题似乎是你试图放两个SurfaceViews
(在这上面绘制了地图)。 ActivityGroup
(TabActivity
扩展了它)很久就被弃用,您最好切换到正确使用Fragments
。制作一个FragmentActivity
,在两个MapFragments
之间切换。
答案 1 :(得分:0)
在互联网上搜索我发现这是一个"错误"使用TabHost。使其工作的唯一方法是将一个活动与地图一起移动到内部"通过另一个" main"活动。通过这种方式,只有一个活动与地图和标签一起显示,而与地图的其他活动不会有标签。不是一个好方法,但对我来说唯一可行的方式。