Кнопка «Назад» на Картах Android - PullRequest
0 голосов
/ 16 июня 2010

Я разрабатываю приложение, которое показывает путь на карте, определяемый файлом 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 голосов
/ 17 июня 2010

Это потому, что вы начинаете свою деятельность и загружаете пустую карту

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    MapView mapView = (MapView) findViewById(R.id.mapview);
    mapView.setBuiltInZoomControls(true);

, а затем создаете Намерение для запуска NEW карты с файлом kml

    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) и возвращается к первой карте (которая пуста).

0 голосов
/ 17 июня 2010

Зависит от того, какую версию API вы используете ... в более поздних версиях есть метод "OnBackPressed", который вы можете переопределить в своей деятельности для настройки поведения спины.

...