0

アプリケーションでマップビューを使用して MapActivity を使用しています。私が直面した問題は、マップ上の任意の場所をタップし、ダイアログにテキストの例を表示したいということです:

do you want to mark this location?

はいの場合は、座標を抽出してどこかに保存します (現時点ではどこでもかまいません)。

どうやってやるの?dispatchTouchEvent メソッドを使用しようとしましたが、失敗しました。

@Override
public boolean dispatchTouchEvent(MotionEvent event) 
{   
if (event.getAction() == 1) {                
    GeoPoint p = mapView.getProjection().fromPixels(
        (int) event.getX(),
        (int) event.getY());
        // send the intent from here to your next activity with the GeoPoint coords.
        Toast.makeText(getBaseContext(), 
            p.getLatitudeE6() / 1E6 + "," + 
            p.getLongitudeE6() /1E6 , 
            Toast.LENGTH_SHORT).show();
}                      
return false;
}  

座標が表示されますが、地図に触れるたびに座標が表示され、移動することさえできません。

4

1 に答える 1

0

のjavadocにdispatchTouchEvent(MotionEvent event)は、次のように記載されています。

これをオーバーライドして、ウィンドウにディスパッチされる前にすべてのタッチ スクリーン イベントをインターセプトすることができます。通常どおりに処理する必要があるタッチ スクリーン イベントに対しては、必ずこの実装を呼び出してください。

したがって、他のすべてのイベントは元のメソッドで処理する必要があります。

public boolean dispatchTouchEvent(MotionEvent event) {   
  if (event.getAction() == 1) {
    // do your stuff
    return true;
  }                      
  return super.dispatchTouchEvent(event);
}
于 2012-09-26T08:14:31.983 に答える