2015-07-09 43 views
3

我遇到的情況,我點擊一個ListFragment和旋轉了一個新的活動象下面這樣:Android導航返回活動;不要刷新父

public void onListItemClick(ListView l, View v, int position, long id) { 

    super.onListItemClick(l, v, position, id); 

    Intent intent = new Intent(getActivity(), VenueBeerActivity.class); 
    Parcelable wrapped = Parcels.wrap(mAdapter.getItem(position)); 
    intent.putExtra("venue", wrapped); 

    startActivity(intent); 
} 

這工作得很好,並顯示新的活動。

使其指向回它的父活動(在這種情況下,主要活動)

然而當按下後退按鈕我的問題是,它重新加載整個父我修改這個活動清單。父母是一個列表,我不希望它重新加載用戶的位置。我怎樣才能防止這一點?

作爲一個說明。父母擁有一個頁面標籤條。

我敢肯定,這是一個比較簡單的解決...

+0

有人張貼,然後刪除他們的帖子..但它導致我,我相信是我的需要! android:launchMode =「singleInstance」 – aherrick

+0

你的第一個活動可以在後臺銷燬,並且必須重新創建。你必須處理這個... – ElDuderino

回答

6

你所說的「後退按鈕」是什麼意思?它是工具欄中的向上按鈕嗎?如果是這樣的話,在你VenueBeerActivity編輯onOptionsItemSelected

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    switch (id) { 
     case android.R.id.home: 
      onBackPressed(); 
      return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

因此,當用戶按下向上按鈕,它會得到在導航欄中的後退按鈕的行爲。

1

在父級活動中,將android:launchMode屬性設置爲singleTop。這會阻止系統在按下向上按鈕時創建一個新的父實例。