我借助“MenuItem”为BlackberryMaps创建了一个自己的菜单项,并调用了Blackberry Maps。使用此项目后,应将当前位置(MapView)发送回我的应用程序。这很好。
问题是我找不到使用菜单项后关闭应用程序的解决方案。是否有可能关闭Blackberry Maps?或者将我自己的App设置为前景?
private static class MapMenuItem extends ApplicationMenuItem {
//creates a new MenuItem for Blackberry Maps and defines the action which should //happen after a click on the MenuItem
CustomDialog_GPS customDialogGps;
StartScreen startScreen;
MapMenuItem(StartScreen startScreen, CustomDialog_GPS customDialogGps) {
super(20);
this.startScreen = startScreen;
this.customDialogGps = customDialogGps;
}
public String toString() {
//creates the name for the navigation Menu
String itemName = ""+_res.getString(CUSTOMDIALOG_GPS_USE_AS_NEW_LOCATION);
return itemName;
}
public Object run(Object context) {
//defines what should happen after a click on the menu
//get the location at which the cursor is pointing at.
MapView mv = (MapView)context;
if (mv != null) {
//opens a method inside of CustomDialogGPS which handles the latitude and longitude
customDialogGps.saveAdjustedPosition(mv);
//TODO pop Screen
//Screen screen = (Screen)UiApplication.getUiApplication().getActiveScreen();
}
else {
throw new IllegalStateException("Context is null, expected a MapView instance");
}
return null;
}
}
答案 0 :(得分:0)
很遗憾,您无法以编程方式关闭其他应用程序(例如,如果您知道要关闭的菜单项在哪里,则可以这样做)但您可以预览应用程序UiApplication.getApplication().requestForeground()
。什么可能适合你。
答案 1 :(得分:0)
不是将用户传递到应用程序之外的地图应用程序,而您无法控制它,而是创建一个自己的屏幕,其中包含MapField。使用您自己的屏幕并可能扩展MapField类以根据需要覆盖功能,允许您在用户选择位置后返回上一个屏幕。