Невозможно использовать MapController без сбоя приложения - PullRequest
1 голос
/ 30 марта 2012

У меня есть две MapActivities, и та, которая использует текущее местоположение пользователя, прекрасно работает.Когда я пытаюсь создать второй MapActivity, который использует жестко заданную широту / долготу, он вылетает при использовании MapController для анимации или установки масштаба.Мой код выглядит следующим образом:

package com.breckbus.app;

import android.os.Bundle;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;

public class Yellowroute extends MapActivity {
    MapController mControl;
    GeoPoint GeoP;
    MapView mapV;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.yellowroute);

        mapV = (MapView) findViewById(R.id.yellowmapView);

        mapV.displayZoomControls(true);
        mapV.setBuiltInZoomControls(true);

        double lat = 39.482547;
        double longi = -106.047699;

        GeoP = new GeoPoint((int) (lat * 1E6), (int) (longi * 1E6));

        mControl.animateTo(GeoP);
        mControl.setZoom(13);

        mapV.invalidate();
    }

    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;

    }

} //end of map.java

Если я уберу mControl.animateTo (GeoP) или mControl.setZoom (13), приложение будет работать нормально.Но, если я ухожу, я получаю следующее:

http://imgur.com/t3eg7

Я вырываю волосы ... Есть идеи, что я делаю неправильно?

1 Ответ

2 голосов
/ 30 марта 2012

Ваш контроллер нулевой, вам нужно добавить строку для его создания

mapV = (MapView) findViewById(R.id.yellowmapView);
mControl = mapV.getController(); // < You need to add this line
...