2012-10-24 107 views
-1

我正在android中製作應用程序,並且我正在使用Google地圖。使用另一個類中的一個類的變量

我有一個導航屏幕,用戶可以放在一個位置。

然後他們點擊一個按鈕並打開一個mapview。

這裏他們輸入的位置也應該被導航。

當我運行這段代碼我得到國家地點一個NullPointerException我map.class

我的導航代碼:

public class Navigatie extends Activity{ 
     public String plaats; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.navigatie); 

      EditText text = (EditText)findViewById(R.id.title); 
      this.plaats = text.getText().toString(); 

      // We create a new ImageButton which links to the map.java class 
      ImageButton imageButton = (ImageButton) findViewById(R.id.imageButton1); 
      // We give a onclicklistener method to the button imageButton 
        imageButton.setOnClickListener(new OnClickListener() { 

       // if the imageButton is clicked we start a new activity called "Map" 
       public void onClick(View v) { 
        startActivity(new Intent(Navigatie.this, Map.class)); 
       } 
      }); 
     } 
    } 

我的地圖可以看到的位置顯示編碼的代碼爲: (只是代碼的一部分)

public Navigatie nav; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.map); 

mapView = (MapView) findViewById(R.id.mapview1); 

mc = mapView.getController(); 

mapView.setBuiltInZoomControls(true); 
String plaats = nav.plaats; 
Geocoder geoCoder = new Geocoder(this, Locale.getDefault()); 
try 
{ 
    List<Address> addresses = geoCoder.getFromLocationName(plaats, 5); 
    String strCompleteAddress = ""; 
    if (addresses.size() > 0) { 
    GeoPoint p = new GeoPoint(
    (int) (addresses.get(0).getLatitude() * 1E6), 
    (int) (addresses.get(0).getLongitude() * 1E6)); 
    mc.animateTo(p); 
    mapView.invalidate(); 
    } 
} catch (IOException e) { 
     e.printStackTrace(); 
} 
+1

搜索活動之間共享數據,或在組件之間傳遞數據等等。這個問題有很多版本,許多答案已經在SO上。 –

回答

1

添加國家地點到你的意圖,開始使用

地圖
intent.putExtra("location", this.plaats); 

然後在你映射的活動,在OnCreate中:

String map_plaats = this.getIntent().getStringExtra("location"); 
+0

我已經做了這個,但現在它給出了一個錯誤:java.lang.IllegalArgumentException:locationName == null – Sidneyvp

+0

我沒有看到你的代碼中的任何位置的locationName,所以我很難說出發生了什麼。 – raydowe

+0

這是geoCoder.getFromLocationName(plaats,5); 我做過的: String map_plaats = this.getIntent()。getStringExtra(「location」); geoCoder.getFromLocationName(map_plaats,5); – Sidneyvp

1

你要發送的字符串,似乎其他活動。

爲此,您可以使用putExtra("key", "value");

你可以得到這個字符串Map.class這樣

getIntent().getStringExtra("key"); 

Study here知道更多關於意圖

相關問題