2012-03-02 18 views
0

我現在有一個佈局,它有一個添加位置按鈕。當前佈局是一旦添加所有值就發送發佈請求的表單。添加位置是其中一個值。當我點擊addLocation按鈕時,我會調用另一個是MapActivity的活動。這是我顯示另一個名爲map_layout.xml的佈局,我允許用戶自由地輸入他/她想要的位置,放大和縮小,多重覆蓋等等。處理mapActivity時發生錯誤。有一個更好的方法嗎?

但是,這是一個不同的活動和佈局。因此,我已經失去了上一次活動的背景。我怎樣才能發回經緯度呢?

或者,是否有可能在相同的活動內(在添加位置按鈕上)有一個相對的地圖佈局,點擊時會打開某些東西。

最大的問題是MapActivity需要打開MapView。但是,我在第一次活動中使用RoboActivity。我希望我對自己的困境很清楚。

回答

1

您可以從您RoboActivity使用startActivityForResult:

final int MAP_ACTIVITY = 1; 

Intent intent = new Intent(getApplicationContext(), RoboActivity.class);              
startActivityForResult(intent, MAP_ACTIVITY); 

在你MapActivity可以返回的數據是這樣的:

Intent returnIntent = new Intent(); 
returnIntent.putExtra("latitude", fltLatitude); 
returnIntent.putExtra("longitude", fltLongitude); 
setResult(RESULT_OK, returnIntent); 
finish(); 

要得到這些結果RoboActivity需要實現onActivityResult:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

if (resultCode == RESULT_OK) { 

switch (requestCode) { 
    case MAP_ACTIVITY: 
     float fltLatitude = data.getFloatExtra("latitude", 0); 
     float fltLongitude = data.getFloatExtra("longitude", 0); 
    break; 
} 
} 
+0

謝謝!我也嘗試了另一種使用RoboMapActivity的方式。我遇到的錯誤是「您不允許在MapAvitivity中擁有單個MapView。」 – Hick 2012-03-02 09:05:39

+0

我認爲在相同視圖中顯示地圖會更酷。 – Hick 2012-03-02 09:05:59

相關問題