0

特にGoogleのMapViewに場所を表示する情報アクティビティを作成しようとしています。このMapActivityをナビゲートし、[戻る]ボタンをクリックすると、次のエラーが発生します。

"...原因:java.lang.IllegalStateException:MapActivityに含めることができるMapViewは1つだけです..."

知っておくべきこと!:

onResumeは、LinearLayoutでMapViewを初期化するsetUpDisplayを呼び出します。

..。

        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-それは決してないかどうかを確認しようとしました。誰かアイデアはありますか?

前もって感謝します。-イーサン

- - - - 編集:

これが、MapActivityのonPauseメソッドで行っていることです。

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

onResume()以外でオーバーライドしている唯一のメソッドです

4

1 に答える 1

0

この投稿は役立つはずです:

MapActivity で許可される MapView は 1 つだけです

概要: 以前の MapView を破棄しないでください。一度 onCreate でインスタンス化し、必要に応じて直接変更します。

于 2012-07-09T18:08:04.940 に答える