0

我正在尝试创建一个信息活动,它在谷歌的 MapView 上显示一个位置等。每当我浏览此 MapActivity,然后单击后退按钮时,我都会收到以下错误:

“...引起:java.lang.IllegalStateException:您只能在 MapActivity 中拥有一个 MapView...”

你应该知道的事情!:

onResume 调用我的 setUpDisplay,它在 LinearLayout 中初始化我的 MapView:

...

        List<Address> geoResults = geocoder.getFromLocationName(formalAddress, 1);
    while (geoResults.size()==0) 
    {
        geoResults = geocoder.getFromLocationName("empire state building", 1);
    }
    if (geoResults.size()>0) 
    {
        point= new GeoPoint( (int) (geoResults.get(0).getLatitude() * 1E6), (int) (geoResults.get(0).getLongitude() * 1E6));
    }
    mapView = new MapView(this, "YOU-NO-GET-TO-SEE-MY-KEY-HERE!");


    MapController mapController = mapView.getController();

    mapController.animateTo(point);
    mapController.setZoom(15);


               myMainLinearLayout.addView(mapView);

...

我还确保在我重写的 onPause() 上调用 myMainLinearLayout.removeAllViews(),并将变量设置为 null,以确保所有事情都得到清理。

我还尝试查看在 mapView 初始化之前是否 mapView == null ——它永远不会。有人有想法么?

提前致谢。-伊森

- - - - 编辑:

这是我在我的 onPause 方法中所做的,在我的 MapActivity 中

@Override
public void onPause()
{//CLEANUP
    super.onPause();
    myMainLinearLayout.removeAllViews();
    myMainLinearLayout= null;
    mapView = null;
}

这是除了 onResume() 之外我要覆盖的唯一方法

4

1 回答 1

0

这篇文章应该会有所帮助:

您只能在 MapActivity 中拥有一个 MapView

摘要:不要破坏你以前的 MapView。在 onCreate 中将其实例化一次,并在需要时直接对其进行修改。

于 2012-07-09T18:08:04.940 回答