Android地图后退按钮

时间:2010-06-16 19:52:25

标签: java android google-maps kml

我正在开发一个应用程序,它在地图上显示一个路径,由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叠加层。如果再次按下“返回”按钮,它将返回上一屏幕。

有关如何解决此问题的任何想法?

2 个答案:

答案 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文件)并返回第一张地图(即空白)。