最好的处理方式就是弹出一个对话框,将用户触摸过的控件罗列出来。你可以通过实现OnMapTouchListener来处理。
参考以下代码,实现上述功能:
mapWidget.setOnMapTouchListener(new OnMapTouchListener() {
public void onTouch(MapWidget map, MapTouchedEvent event) { List objectTouchEvents = event.getTouchedObjectIds(); // X coordinate of the touch in original image coordinates
int mapX = event.getMapX();
// Y coordinate of the touch in original image coordinates
int mapY = event.getMapY();
// X coordinate of the touch in screen coordinates
int screenX = event.getScreenX();
// Y coordinate of the touch in screen coordinates
int screenY = event.getScreenY(); if (objectTouchEvents.size() == 1) {
ObjectTouchEvent objectTouchEvent = objectTouchEvents.get(0); // Id of the layer that the map object belongs to
long layerId = objectTouchEvent.getLayerId();
// Id of the map object that was touched.
Object objectId = objectTouchEvent.getObjectId(); // Handle single object touch event here
} else if (objectTouchEvents.size() > 1) {
List ids = new ArrayList();
// Getting id's of the touched objects
for (ObjectTouchEvent objectTouchEvent:objectTouchEvents){
// Id of the layer the object belongs to
long layerId = objectTouchEvent.getLayerId();
// Id of the object
Object objectId = objectTouchEvent.getObjectId();
ids.add(objectId);
} // Show dialog with the list of objects here using ids
} else {
// Ignore touch event
}
}
});