2012-03-30 8 views
1

私は2つのMapActivitiesを持っており、ユーザーの現在の場所を使用するものは素晴らしいです。 2番目のMapActivityを作成しようとすると、ハードコードされた緯度/経度が使用されます.MapControllerを使用してズームやズームを設定するとクラッシュします。アプリケーションがクラッシュすることなく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

をインスタンス化する行を追加する必要がありますが、私たちにlogcatエラーメッセージ – Martyn

答えて

2

お使いのコントローラがnullの場合、あなたはそれを

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

あなたの先生を与えることができ、聖人です!私はあなたにupvoteを与えるだろうが、私はまだ十分な評判を持っていない。再度、感謝します! – kbarnes

関連する問題