0

これが私の問題です。リスト0 ... n-1があります。このリストには n 個のオーバーレイがあります。地図上で動いている車をシミュレートする必要があります。これはオーバーレイによって示されます。メインスレッドでオーバーレイを生成する AsyncTask を実行しようとしましたが、マップビューをドラッグすると currentmodificationexception でクラッシュします。他のスレッドからのオーバーレイを管理できないため、これは反復子の問題です。どのようにできるのか?

4

1 に答える 1

0

n 個のオーバーレイを使用する代わりに、オーバーレイを 1 つだけ使用して draw メソッドをオーバーライドし、車を正しい位置に描画することができます。

非同期タスクを使用して車の位置 (x、y) を定義することもできます。オーバーレイ描画では、この X、Y 座標を使用して車を配置します。

doInBackground(){
  //..
  carOverlay.set(x,y);
  //..
}

public class CarOverlay extends Overlay {
//..
set(intx, int y){
  this.x = x;
  this.y = y;
}

@Override
public void draw(Canvas canvas, MapView mapview, boolean shadow) {
  //..
  darwCar(x,y); //you need to create your darwCar method ...
}

幸運を。

于 2012-10-06T15:28:06.460 に答える