Android:两个有两个地图的活动;第二个没有正确加载

时间:2013-05-14 10:53:28

标签: android google-maps android-activity android-maps-v2

我试着更好地解释一下: 我的应用程序有一个标签栏(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”日志......

2 个答案:

答案 0 :(得分:1)

问题似乎是你试图放两个SurfaceViews(在这上面绘制了地图)。 ActivityGroupTabActivity扩展了它)很久就被弃用,您最好切换到正确使用Fragments。制作一个FragmentActivity,在两个MapFragments之间切换。

答案 1 :(得分:0)

在互联网上搜索我发现这是一个"错误"使用TabHost。使其工作的唯一方法是将一个活动与地图一起移动到内部"通过另一个" main"活动。通过这种方式,只有一个活动与地图和标签一起显示,而与地图的其他活动不会有标签。不是一个好方法,但对我来说唯一可行的方式。