List of usage examples for android.support.v4.app FragmentManager popBackStack
public abstract void popBackStack(int id, int flags);
From source file:org.sufficientlysecure.keychain.ui.keyview.ViewKeyActivity.java
public void showMainFragment() { new Handler().post(new Runnable() { @Override//from w w w . j a v a2s . co m public void run() { FragmentManager manager = getSupportFragmentManager(); // unless we must refresh ViewKeyFragment frag = (ViewKeyFragment) manager.findFragmentByTag("view_key_fragment"); // if everything is valid, just drop it if (frag != null && frag.isValidForData(mIsSecret)) { return; } // if the main fragment doesn't exist, or is not of the correct type, (re)create it frag = ViewKeyFragment.newInstance(mMasterKeyId, mIsSecret); // get rid of possible backstack, this fragment is always at the bottom manager.popBackStack("security_token", FragmentManager.POP_BACK_STACK_INCLUSIVE); manager.beginTransaction().replace(R.id.view_key_fragment, frag, "view_key_fragment") // if this gets lost, it doesn't really matter since the loader will reinstate it onResume .commitAllowingStateLoss(); } }); }
From source file:com.koushikdutta.widgets.ListContentFragmentInternal.java
@SuppressLint("InlinedApi") void setContentNative(final String breadcrumb) { android.app.Fragment f = (android.app.Fragment) mCurrentContent; Activity fa = getActivity();/* ww w . j ava 2s. com*/ final android.app.FragmentManager fm = fa.getFragmentManager(); android.app.FragmentTransaction ft = fm.beginTransaction(); if (isPaged()) { if (listener == null) { fm.addOnBackStackChangedListener(new android.app.FragmentManager.OnBackStackChangedListener() { { listener = this; } @Override public void onBackStackChanged() { android.app.Fragment f = (android.app.Fragment) getFragment(); if (f.isDetached() || f.isRemoving()) { fm.removeOnBackStackChangedListener(this); return; } View v = getFragment().getView(); if (v == null) return; final View l = v.findViewById(R.id.list_fragment); if (l == null) return; if (fm.getBackStackEntryCount() > 0 && "content" .equals(fm.getBackStackEntryAt(fm.getBackStackEntryCount() - 1).getName())) { l.setVisibility(View.GONE); } else { l.setVisibility(View.VISIBLE); } } }); } fm.popBackStack("content", android.app.FragmentManager.POP_BACK_STACK_INCLUSIVE); ft.setBreadCrumbTitle(breadcrumb); ft.setBreadCrumbShortTitle(breadcrumb); ft.addToBackStack("content"); } ft.replace(getContentId(), f, "content"); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); ft.commit(); }
From source file:com.koushikdutta.widgets.ListContentFragmentInternal.java
public void setContent(FragmentInterfaceWrapper content, boolean clearChoices, String breadcrumb) { mCurrentContent = content;// ww w . ja v a2 s. c om if (getActivity() instanceof FragmentActivity) { Fragment f = (Fragment) mCurrentContent; FragmentActivity fa = (FragmentActivity) getActivity(); final FragmentManager fm = fa.getSupportFragmentManager(); FragmentTransaction ft = fa.getSupportFragmentManager().beginTransaction(); if (isPaged()) { View v = getFragment().getView(); Assert.assertNotNull(v); final View l = v.findViewById(R.id.list_fragment); Assert.assertNotNull(l); l.setVisibility(View.GONE); fm.addOnBackStackChangedListener(new OnBackStackChangedListener() { { listener = this; } @Override public void onBackStackChanged() { Fragment f = (Fragment) getFragment(); if (f.isDetached() || f.isRemoving()) { fm.removeOnBackStackChangedListener(this); return; } View v = getFragment().getView(); if (v == null) return; final View l = v.findViewById(R.id.list_fragment); if (l == null) return; if (fm.getBackStackEntryCount() > 0 && "content" .equals(fm.getBackStackEntryAt(fm.getBackStackEntryCount() - 1).getName())) { l.setVisibility(View.GONE); } else { l.setVisibility(View.VISIBLE); } } }); fm.popBackStack("content", FragmentManager.POP_BACK_STACK_INCLUSIVE); ft.setBreadCrumbTitle(breadcrumb); ft.setBreadCrumbShortTitle(breadcrumb); ft.addToBackStack("content"); } ft.replace(getContentId(), f, "content"); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); ft.commit(); } else { setContentNative(breadcrumb); } if (clearChoices) getListView().clearChoices(); }
From source file:android.support.v17.leanback.app.GuidedStepSupportFragment.java
/** * Convenient method to pop to fragment with Given class. * @param guidedStepFragmentClass Name of the Class of GuidedStepSupportFragment to pop to. * @param flags Either 0 or {@link FragmentManager#POP_BACK_STACK_INCLUSIVE}. *///from w w w . j av a 2s . com public void popBackStackToGuidedStepSupportFragment(Class guidedStepFragmentClass, int flags) { if (!GuidedStepSupportFragment.class.isAssignableFrom(guidedStepFragmentClass)) { return; } final FragmentManager fragmentManager = getFragmentManager(); final int entryCount = fragmentManager.getBackStackEntryCount(); String className = guidedStepFragmentClass.getName(); if (entryCount > 0) { for (int i = entryCount - 1; i >= 0; i--) { BackStackEntry entry = fragmentManager.getBackStackEntryAt(i); String entryClassName = getGuidedStepSupportFragmentClassName(entry.getName()); if (className.equals(entryClassName)) { fragmentManager.popBackStack(entry.getId(), flags); return; } } } }
From source file:key.secretkey.MainActivity.java
private void checkLocalRepository(File localDir) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); if (localDir != null && settings.getBoolean("repository_initialized", false)) { Log.d("PASS", "Check, dir: " + localDir.getAbsolutePath()); // do not push the fragment if we already have it if (fragmentManager.findFragmentByTag("PasswordsList") == null || settings.getBoolean("repo_changed", false)) { settings.edit().putBoolean("repo_changed", false).apply(); plist = new PasswordFragment(); Bundle args = new Bundle(); args.putString("Path", PasswordStorage.getRepositoryDirectory(getApplicationContext()).getAbsolutePath()); // if the activity was started from the autofill settings, the // intent is to match a clicked pwd with app. pass this to fragment if (getIntent().getBooleanExtra("matchWith", false)) { args.putBoolean("matchWith", true); }// ww w . j ava 2 s . c o m plist.setArguments(args); getSupportActionBar().show(); getSupportActionBar().setDisplayHomeAsUpEnabled(false); fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); fragmentTransaction.replace(R.id.main_layout, plist, "PasswordsList"); fragmentTransaction.commit(); } } else { // getSupportActionBar().hide(); fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); // Snackbar snack = Snackbar.make(findViewById(R.id.main_layout), "You fucked up, you shouldn't be here XD", // Snackbar.LENGTH_INDEFINITE); // snack.show(); createNewRepository(); // ToCloneOrNot cloneFrag = new ToCloneOrNot(); // fragmentTransaction.replace(R.id.main_layout, cloneFrag, "ToCloneOrNot"); // fragmentTransaction.commit(); } }
From source file:android.support.v17.leanback.app.GuidedStepSupportFragment.java
/** * Convenient method to close GuidedStepSupportFragments on top of other content or finish Activity if * GuidedStepSupportFragments were started in a separate activity. Pops all stack entries including * {@link #UI_STYLE_ENTRANCE}; if {@link #UI_STYLE_ENTRANCE} is not found, finish the activity. * Note that this method must be paired with {@link #add(FragmentManager, GuidedStepSupportFragment, * int)} which sets up the stack entry name for finding which fragment we need to pop back to. *///w ww . j av a 2 s .c om public void finishGuidedStepSupportFragments() { final FragmentManager fragmentManager = getFragmentManager(); final int entryCount = fragmentManager.getBackStackEntryCount(); if (entryCount > 0) { for (int i = entryCount - 1; i >= 0; i--) { BackStackEntry entry = fragmentManager.getBackStackEntryAt(i); if (isStackEntryUiStyleEntrance(entry.getName())) { GuidedStepSupportFragment top = getCurrentGuidedStepSupportFragment(fragmentManager); if (top != null) { top.setUiStyle(UI_STYLE_ENTRANCE); } fragmentManager.popBackStack(entry.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE); return; } } } ActivityCompat.finishAfterTransition(getActivity()); }
From source file:com.chatwing.whitelabel.activities.CommunicationActivity.java
@Override public void onBackPressed() { if (mCurrentCommunicationMode.isSecondaryDrawerOpening()) { ((ChatboxModeManager) mCurrentCommunicationMode).closeSecondaryDrawer(); } else if (!mCurrentCommunicationMode.isCommunicationBoxDrawerOpening()) { // Both online users and chat boxes/conversation lists are closed. // Open chat boxes/conversation list now. mCurrentCommunicationMode.openCommunicationBoxDrawer(); } else {// ww w .j a va 2 s .co m // Online users list is closed, chat boxes list is opened. // User probably is trying to quit the app. FragmentManager fragmentManager = getSupportFragmentManager(); int stackSize = fragmentManager.getBackStackEntryCount(); if (stackSize == 0) { finish(); } else { String fragmentTag = fragmentManager.getBackStackEntryAt(stackSize - 1).getName(); fragmentManager.popBackStack(fragmentTag, FragmentManager.POP_BACK_STACK_INCLUSIVE); } } }
From source file:vn.cybersoft.obs.android.activities.MainActivity.java
public void swapToFragmentView(ScreenList newFragment) { Log.i(t, "swapToFragmentView: " + newFragment.toString()); FragmentManager fragmentManager = getSupportFragmentManager(); Fragment fragment = null;/*w w w . ja va 2s . c o m*/ if (ScreenList.BATTERY_INFO == newFragment) { fragment = fragmentManager.findFragmentById(BatteryInfoFragment.LAYOUT_ID); if (null == fragment) { fragment = new BatteryInfoFragment(); } } else if (ScreenList.OPTIMIZATION == newFragment) { fragment = fragmentManager.findFragmentById(OptimizationFragment.LAYOUT_ID); if (null == fragment) { fragment = new OptimizationFragment(); } } else if (ScreenList.CHARGE == newFragment) { fragment = fragmentManager.findFragmentById(ChargeFragment.LAYOUT_ID); if (null == fragment) { fragment = new ChargeFragment(); } } else if (ScreenList.CONSUMPTION == newFragment) { fragment = fragmentManager.findFragmentById(ConsumptionFragment.LAYOUT_ID); if (null == fragment) { fragment = new ConsumptionFragment(); } } else if (ScreenList.ABOUT == newFragment) { fragment = fragmentManager.findFragmentById(AboutFragment.LAYOUT_ID); if (null == fragment) { fragment = new AboutFragment(); } } else { throw new IllegalStateException("Unrecognized ScreenList type"); } currentFragment = newFragment; BackStackEntry entry = null; for (int i = 0; i < fragmentManager.getBackStackEntryCount(); ++i) { BackStackEntry e = fragmentManager.getBackStackEntryAt(i); if (e.getName().equals(currentFragment.name())) { entry = e; break; } } if (null != entry) { // flush backward, including the screen want to go back to //fragmentManager.popBackStackImmediate(currentFragment.name(), FragmentManager.POP_BACK_STACK_INCLUSIVE); fragmentManager.popBackStack(currentFragment.name(), FragmentManager.POP_BACK_STACK_INCLUSIVE); } // add transaction to show the screen we want FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.main_frame, fragment); transaction.addToBackStack(currentFragment.name()); transaction.commit(); levelSafeInvalidateOptionsMenu(); }
From source file:com.cnm.cnmrc.fragment.vodtvch.Base.java
@Override public void onDestroyView() { {// w w w . ja va2 s.com // back key ? 2, ?, destoryview? ? count minus?. // ? TAG_FRAGMENT_BASE? fragment ? . . . // backstack? transaction? count ? minus ?. Fragment f = getActivity().getSupportFragmentManager() .findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_BASE); if (f != null) { Log.i("hwang", "At Base TAG_FRAGMENT_BASE exist!!!"); } else { Log.i("hwang", "At Base TAG_FRAGMENT_BASE no exist!!!"); } f = getActivity().getSupportFragmentManager().findFragmentById(R.id.loading_data_panel); if (f != null) { Log.i("hwang", "At Base loading_data_panel exist!!!"); } else { Log.i("hwang", "At Base loading_data_panel no exist!!!"); } } // { // FragmentManager fm = getActivity().getSupportFragmentManager(); // Log.i("hwang", "before destory base view fragment count --> " + Integer.toString(fm.getBackStackEntryCount())); // Fragment f = getActivity().getSupportFragmentManager().findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_BASE); // if (f != null) { // getActivity().getSupportFragmentManager().beginTransaction().remove(f).commit(); // TAG_FRAGMENT_BASE? fragment ?? ?. // fm.executePendingTransactions(); // fragment ? ?. // } // Log.i("hwang", "after destory base view fragment count --> " + Integer.toString(fm.getBackStackEntryCount())); // // // check // // entry stack? ? 0 ? index?. // for (int entry = 0; entry < fm.getBackStackEntryCount(); entry++) { // Log.i("hwang", "Found fragment: " + fm.getBackStackEntryAt(entry).getId()); // } // } // { // // same above, ~ ?? ? TAG_FRAGMENT_BASE? ? fragment ? ?. // FragmentManager fm = getActivity().getSupportFragmentManager(); // Log.i("hwang", "before destory base view fragment count --> " + Integer.toString(fm.getBackStackEntryCount())); // Fragment f = getActivity().getSupportFragmentManager().findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_BASE); // if (f != null) { // fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, 0); // ? ? null ?. // TAG_FRAGMENT_BASE? fragment ?. // fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, FragmentManager.POP_BACK_STACK_INCLUSIVE); // TAG_FRAGMENT_BASE? fragment ?. ??..... // fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); // stack? fragment ?. // } // Log.i("hwang", "after destory base view fragment count --> " + Integer.toString(fm.getBackStackEntryCount())); // // // check // // entry stack? ? 0 ? index?. // for (int entry = 0; entry < fm.getBackStackEntryCount(); entry++) { // Log.i("hwang", "Found fragment: " + fm.getBackStackEntryAt(entry).getId()); // } // } // To clear stack you need to call: // // ScreenFragment.sDisableExitAnimation = true; // manager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); // transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); // FragmentManager fm = getActivity().getSupportFragmentManager(); // for(int i = 0; i < fm.getBackStackEntryCount(); ++i) { // fm.popBackStack(); // } // But could equally have used something like: // // FragmentManager.popBackStack(String name, FragmentManager.POP_BACK_STACK_INCLUSIVE); // To go to top simply use: fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); // // transaction.replace(R.id.detailFragment, frag1); // Transaction.remove(null).add(frag1) // frag1 on view // // // transaction.replace(R.id.detailFragment, frag2).addToBackStack(null); // Transaction.remove(frag1).add(frag2).addToBackStack(null) // frag2 on view // // // transaction.replace(R.id.detailFragment, frag3); // Transaction.remove(frag2).add(frag3) // frag3 on view // FragmentManager fm = getActivity().getSupportFragmentManager(); // for(int i = 0; i < fm.getBackStackEntryCount(); ++i) { // fm.popBackStack(); // } // Use a name for your initial back stack state and use FragmentManager.popBackStack(String name, FragmentManager.POP_BACK_STACK_INCLUSIVE). // Use FragmentManager.getBackStackEntryCount()/getBackStackEntryAt().getId() to retrieve the ID of the first entry on the back stack, // and FragmentManager.popBackStack(int id, FragmentManager.POP_BACK_STACK_INCLUSIVE). // is supposed to pop the entire back stack... //FragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) // Base? onDestroyView() 2 . // ft.replace(R.id.loading_data_panel, base); // ft.add(R.id.loading_data_panel, base, ((MainActivity) getActivity()).TAG_FRAGMENT_BASE); // getBackStackEntryCount() ?? ... ? ? ? ??... // backstack? count ??? ? ?... FragmentManager fm = getActivity().getSupportFragmentManager(); if (!isFirstDepth) { // 1 depth?? ? depth?... //if(fm.getBackStackEntryCount() > 0 && fm.getBackStackEntryCount() < 8) { // indicator 8 ... Log.i("hwang", "before Base onDestroyView() fragment count --> " + Integer.toString(fm.getBackStackEntryCount())); Fragment f = getActivity().getSupportFragmentManager() .findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_BASE); if (f != null) { // ?? ~~~~ // popBackStack()? ? ? ? ? ?. , backstack count ? minus? ??. //fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, 0); // ? ? null ?. // TAG_FRAGMENT_BASE? fragment ?. //fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, FragmentManager.POP_BACK_STACK_INCLUSIVE); // TAG_FRAGMENT_BASE? fragment ?. ??... //fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); // stack? fragment ?. //getActivity().getSupportFragmentManager().beginTransaction().remove(f).commit(); // TAG_FRAGMENT_BASE? fragment ?? ?. //fm.executePendingTransactions(); // fragment ? ?. // sidebar ? ... Fragment f1 = fm.findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_VOD_TVCH); if (f1 != null) { if (((VodTvchMain) f1).mSlidingMenu.isOpening()) { getActivity().getSupportFragmentManager().beginTransaction().remove(f).commit(); //fm.getBackStackEntryAt(0); //fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, FragmentManager.POP_BACK_STACK_INCLUSIVE); //fm.executePendingTransactions(); for (int i = 0; i < fm.getBackStackEntryCount(); i++) { // fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, FragmentManager.POP_BACK_STACK_INCLUSIVE); fm.popBackStack(i, 0); // OK //fm.popBackStack(i, FragmentManager.POP_BACK_STACK_INCLUSIVE); // not OK } } } } Log.i("hwang", "after Base onDestroyView() fragment count --> " + Integer.toString(fm.getBackStackEntryCount())); // check // entry stack? ? 0 ? index?. for (int entry = 0; entry < fm.getBackStackEntryCount(); entry++) { Log.i("hwang", "At Base onDestroyView() Found fragment: " + fm.getBackStackEntryAt(entry).getId()); } deleteDepthLevel(); { f = getActivity().getSupportFragmentManager().findFragmentById(R.id.loading_data_panel); FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); if (f != null) { if (f.isHidden()) ft.show(f).commit(); // loading_data_panel TAG_FRAGMENT_BASE ?. ? // f --> VodList{42626a88 #12 id=0x7f0c0048 base} // f --> VodList{42624ab0 #11 id=0x7f0c0048 base} // f --> VodList{42622ad8 #10 id=0x7f0c0048 base} // f --> VodList{42620b00 #9 id=0x7f0c0048 base} // f --> VodList{4261ea88 #8 id=0x7f0c0048 base} // f --> VodList{4261c560 #7 id=0x7f0c0048} } } } super.onDestroyView(); }