特に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()以外でオーバーライドしている唯一のメソッドです