2011-08-18 81 views
0

我有一個問題。我有2個MapActivity。首先,我在地圖上顯示一些地方,並讓我的listView與那些地方。當我點擊listView時,它會打開第二個地圖,並在地圖上顯示一個地方,並在該地點的某些信息下顯示。更新位置很好,但是當我按下「後退」按鈕時,它會顯示未更新位置的第一個活動。我的問題是如何在第二次按下按鈕時在第一次活動中更新位置?這是我做了什麼:onBackPressed位置更新android

@Override 
public void onBackPressed() { 
    Intent data = new Intent();  
    data.putExtra("Latitude", location.getLatitude()); 
    data.putExtra("Longitude", location.getLongitude()); 
    setResult(RESULT_OK,data); 
    super.onBackPressed(); 

} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(requestCode == request_Code){ 
     if(resultCode == RESULT_OK){ 
          Location location = new Location(provider); 
      location.setLatitude(data.getDoubleExtra("Latitude", 0)); 
      location.setLongitude(data.getDoubleExtra("Longitude", 0)); 
      listener.onLocationChanged(location); 
     } 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 

這是解決我的問題

+0

我修復它...創建新的位置實例...感謝人 – Jovan

+0

添加爲您的問題的答案。 – Ronnie

+0

接受最能幫助您的答案 – Sameer

回答

1

在第一項活動中,通過startActivityForResult()開始第二項活動。然後執行onActivityResult()更新您的位置。

+0

我這樣做......再看看我的帖子......我改變了...... – Jovan

0

您可以用下面的代碼覆蓋onResume()

@Override 
protected void onResume() { 
    super.onResume(); 
    // update your location here 
} 

這就是所謂的每一個活動得到恢復時間 - 在你的情況下,當你進入細節視圖時會暫停,並在你回去時恢復。

+0

我想到了這一點,但是我怎樣才能將我的新位置轉到onResume? – Jovan

+0

沒錯,沒有讓你在那裏。你應該按照jainal的建議,沿着startActivityForResult()的方向使用一些東西。 –