0

我试图更好地解释:我的应用程序有一个标签栏(一个 TabHost),其中两个标签是两个活动,每个活动都有一个地图。当我单击第一个选项卡时,我得到了地图,我可以随意使用它。当我点击第二个时,我得到了相同的地图,上面有相同的标记和相同的路径,我什至无法移动地图。我不希望它表现得那样。每个活动都必须使用不同的地图。

我正在使用 v2 地图,这两个活动扩展了 android.support.v4.app.FragmentActivity。

请注意,如果我首先单击第二个活动,我可以根据需要使用地图,并且问题会在第一个活动上重复。

我没有重复使用任何东西!一切都有不同的名称、id、ecc...

请帮忙!

PS这里是我用来初始化地图的代码(在一个活动中):

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”日志......

4

2 回答 2

1

问题似乎是你试图放两个SurfaceViews(地图是在这个上面绘制的)。ActivityGroupTabActivity扩展它)早已被弃用,你最好切换到正确使用Fragments. 做一个单FragmentActivity,在两个之间切换MapFragments

于 2013-05-14T11:21:39.077 回答
0

在整个互联网上搜索我发现这是 TabHost 的一个“错误”。使其工作的唯一方法是将其中一个活动与地图一起移动到“内部”位置,例如通过另一个“主要”活动调用它。这样,只有一个带有地图和选项卡的活动,而带有地图的其他活动将没有选项卡。这不是一个好方法,但对我来说是唯一可能的方法。

于 2013-06-03T08:36:19.920 回答