private LocationManager manager;
private TextView tv;
private MapController control;
private GeoPoint chosen = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.placechooser);
final MapView map = (MapView) findViewById(R.id.gmap);
tv=(TextView) findViewById(R.id.textView1);
map.setBuiltInZoomControls(true);
map.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
chosen = map.getProjection().fromPixels(
(int) event.getX(), (int) event.getY());
tv.setText((chosen.getLatitudeE6() / (Math.pow(10,6)) + "," + (chosen.getLongitudeE6() / (Math.pow(10,6)))));
return true;
}
});
このコードスニペットは機能し、すべて、グーグルマップを見ることができます。マップ上の特定のポイントを押すと、TextViewで期待どおりの結果が得られますが、マップが移動せず、正常に応答しません。組み込みのonclicklistenerだと思います。どうすればこれを修正できますか?
私が試したこと:
getOnClickLisetenerを探して保存し、クリックリスナーでアクティブ化しようとしましたが、そのようなメソッドはありません。
MapOverlayクラスを作成して、on touch機能をonTouchメソッドにコピーしました。マップが移動しなかっただけでなく、map.getProjection()からnullの結果を受け取りました。
どうすればこれを克服できますか?