ユーザーがマップの空白部分をタップすると新しいフラグが表示され、フラグをタップするとダイアログ ボックスが表示されるアプリを作成しようとしています。
最初の onTap メソッドは自分で作成し、2 番目のメソッドは Google マップのチュートリアルからコピーして使い始めました。問題は、最初のものは常に発火し、2 つ目は発火しないことです。最初のメソッドを削除すると、2 番目のメソッドが想定どおりに機能します (フラグをタップすると、対応するダイアログが表示されます)。これらは両方とも ItemizedOverlay クラスのメソッドであり、mContext はコンストラクターによって生成されたコンテキストであり、locations は OverlayItems の ArrayList です。
私の質問は、どうすれば2つを調和させることができるでしょうか?
public boolean onTap(GeoPoint p, MapView mapView){
locations.add(new OverlayItem(p, "Point 3", "Point 3"));
populate();
return false;
}
@Override
protected boolean onTap(int index) {
OverlayItem item = locations.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}