У меня есть эта функция, чтобы показывать AlertDialog при прикосновении к маркеру:
protected boolean onTap(int index) {
db = openHelper.getWritableDatabase();
AlertDialog.Builder dialog = new AlertDialog.Builder(Geo.this);
String[] columns_descri = new String[] {COL_DESCRI};
Cursor cur = db.query(true, TABLE_COORD, columns_descri,null, null, null, null, null, null);
if (cur.moveToPosition(index-1)) {
String description = cur.getString(cur.getColumnIndexOrThrow(COL_DESCRI));
dialog.setTitle("Info.");
dialog.setMessage(description);
dialog.show();
}
db.close();
return true; }
И этот метод для извлечения любого касания карты:
@Override
public boolean onTouchEvent(MotionEvent event, MapView maMap)
{
//---when user lifts his finger---
if (event.getAction() == 1) {
GeoPoint p = maMap.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
Toast.makeText(getBaseContext(),
p.getLatitudeE6() / 1E6 + "," +
p.getLongitudeE6() /1E6 ,
Toast.LENGTH_SHORT).show();
}
return true;
}
Проблема в том, когда onTouchEvent
возвращает TRUE. Я не могу управлять картой, перемещать ее или показывать AlertDialog при прикосновении к маркеру.Когда он ложный, я снова беру контроль над картой, но тост отображается много раз (5 или 6 раз).Что может быть источником этой странной проблемы?