我正在开发一个应用程序,它在地图上显示一个路径,由KML文件决定。具体来说,在启动地图的MapActivity中:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
Uri uri = Uri.parse("geo:0,0?q=http://urltokml");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, uri);
mapIntent.setData(uri);
startActivity(Intent.createChooser(mapIntent, kmlFile));
finish();
}
地图加载正常,几秒钟后,KML描述的路径显示出来。问题是,当我按下“后退”按钮时,它不会返回到前一个屏幕,而只是隐藏KML叠加层。如果再次按下“返回”按钮,它将返回上一屏幕。
有关如何解决此问题的任何想法?
答案 0 :(得分:0)
取决于您使用的API版本......在更高版本中,您可以在活动中覆盖“OnBackPressed”方法以调整后退行为。
答案 1 :(得分:0)
这是因为您正在开始活动并加载空白地图
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
然后创建一个Intent以使用kml文件启动 NEW 地图
Uri uri = Uri.parse("geo:0,0?q=http://urltokml");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, uri);
mapIntent.setData(uri);
startActivity(Intent.createChooser(mapIntent, kmlFile));
finish();
}
那么当您回击时发生的事情是它将离开第二张地图(使用kml文件)并返回第一张地图(即空白)。