これはここでの私の最初の質問なので、何か問題があれば教えてください。
これで、ユーザーの場所とHelloItemizedOverlaypublic class MainMap extends MapActivity
を使用するがあります。マーカー (かなり基本的なオーバーレイ) を追加したい XML ファイルから特定の POI を取得しています。MyLocationListener
ユーザーがボタンを押すと、AsyncTask が開始されます。
private class GetPOITask extends AsyncTask<String, Void, Void> {
protected Void doInBackground(String... params) {
clearMapOverlay();
if(!isBusyAddingOverlays)
{
connect(params[0]);
}
return null;
}
protected void onPreExecute() {
clearMapOverlay();
}
}
MapOverlay を消去します (this.mv は MapView です):
public void clearMapOverlay()
{
this.mv.getOverlays().remove(placesItemizedOverlay);
this.mv.postInvalidate();
this.mv.getOverlays().add(myLoc);
}
これは、マーカーを追加するのに十分な情報がある場合に接続メソッドが呼び出すメソッドです。
private void addOverlayToList(int id, GeoPoint point, String title, String description)
{
//Log.e("Debug", "Adding overlay");
placesItemizedOverlay.addOverlay(new POIOverlay(id, point, title, description));
this.mv.getOverlays().add(placesItemizedOverlay);
}
それはすべての関連するコードでなければなりません。
問題は、POI を追加してマップをズーム (または移動) すると、ConcurrentModificationException
.
このサイトを検索して、同様のスレッド (たとえば、これ)を読んでいますが、自分が間違っていることを実際に見つけることができません。
自分のことを知っていれば、それはおそらく明らかなことです。
前もって感謝します、
イアルウェイン