[英]How to return back to a fragment in viewpager from an Activity's fragment
[英]Return to a activity's fragment
我有一個活動(MainActivity),它具有一個導航抽屜,並且可以顯示2個片段(片段A和B),一次顯示一個。 (此活動是android studio創建的帶有導航抽屜的默認活動)
當我在抽屜上選擇片段B時,操作欄菜單將更新為顯示特定於片段B的按鈕(按鈕P)。
按鈕P以明確的意圖打開一個獨立的活動(IndependentActivity),對此活動我執行數據庫操作,完成此活動后,請返回MainActivity。
問題是:完成IndependentActivity后,將顯示MainActivity, 但它顯示的是片段A而不是片段B,后者是調用意圖轉到IndependentActivity的片段。
如何通過顯示引發該動作進行另一個活動的片段來解決此問題? 有什么方法可以保存出現的片段?
基本上,您要做的是:
一個簡單的實現可以是:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save which fragment that is in the view when entering another activity
savedInstanceState.putString("fragment", "fragmentB");
super.onSaveInstanceState(savedInstanceState);
}
片段B可以用一個字符串替換,該字符串告訴應用程序當前片段。
回到活動之后,您要:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if( savedInstanceState != null ) {
// Get which fragment that was active when you left the activity
savedInstanceState.getString("fragment");
// Programatically select the fragment here
}
}
您可以在此處閱讀有關保存實例狀態的更多信息:
http://developer.android.com/training/basics/activity-lifecycle/recreating.html
我將留給您以編程方式選擇片段。 希望對您有所幫助!
我發現我遇到了與此相同的問題: https : //stackoverflow.com/a/29464116/2325672
返回的后退箭頭不起作用,因此重置了活動的片段,並且模擬器的后三角效果很好。
將此代碼添加到IndependentActivity可以為我工作:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()== android.R.id.home) {
Intent intent = NavUtils.getParentActivityIntent(this);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
NavUtils.navigateUpTo(this, intent);
return true;
}
return super.onOptionsItemSelected(item);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.