3

私は次のコードを持っています:

setContentView(R.layout.maplayout);
// Create Rotate view
mRotateView = new RotateView(this);

// create a map view
mapView = (MapView) findViewById(R.id.mapview);

mRotateView.addView(mapView); // error here
setContentView(mRotateView);
mylocation = new MyLocationOverlay(this,mapView);

しかし、ビューを追加すると、指定された子にすでに親があるというエラーが表示されます。これは、mapViewがすでにレイアウトの子であるためだと思います。

では、どうすればこれを解決できますか?

4

1 に答える 1

0

オプション#1:リソースRotateViewをウィジェットres/layout/maplayout.xmlの親としてMapView配置するため、Javaコードで設定する必要はありません。

オプション#2:リソースMapViewからを削除しres/layout/maplayout.xml、コンストラクターを介してそのインスタンスを作成し、RotateViewJavaコードで追加します。

オプション#3:を呼び出す前removeView()に、親を呼び出してから削除し、に追加します。MapViewaddView()RotateView

于 2012-04-05T14:06:24.373 に答える