List of usage examples for android.support.v4.app FragmentManager getBackStackEntryAt
public abstract BackStackEntry getBackStackEntryAt(int index);
From source file:com.projeto_les.easymeal.MainActivity.java
@Override public void onBackPressed() { int fragments = getSupportFragmentManager().getBackStackEntryCount(); if (fragments == 1) { finish();//from w ww. ja v a 2 s. c o m return; } FragmentManager fragmentManager = getSupportFragmentManager(); String fragmentTag = fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount() - 1) .getName(); if (fragmentTag.equals(SelectIngredientsFragment.TAG)) { //selectIngredientsFragment.updateView(); clearSearch(true); } super.onBackPressed(); }
From source file:com.cyanogenmod.eleven.ui.activities.HomeActivity.java
/** * Immediately clears the backstack//w w w .j a v a2 s . co m */ protected void clearBackStack() { final FragmentManager fragmentManager = getSupportFragmentManager(); if (fragmentManager.getBackStackEntryCount() > 0) { final int id = fragmentManager.getBackStackEntryAt(0).getId(); fragmentManager.popBackStackImmediate(id, FragmentManager.POP_BACK_STACK_INCLUSIVE); } }
From source file:com.vinexs.eeb.BaseFragment.java
public void addFragment(int viewId, Fragment fragment) { if (fragment.isAdded()) { return;// ww w.j ava2 s. com } FragmentManager fragMgr = getActivity().getSupportFragmentManager(); FragmentTransaction transaction = fragMgr.beginTransaction(); FragmentManager.BackStackEntry lastEntry = fragMgr.getBackStackEntryCount() == 0 ? null : fragMgr.getBackStackEntryAt(fragMgr.getBackStackEntryCount() - 1); // Transaction options String fragName = fragment.getClass().getSimpleName(); String breadCrumbTitle; String breadCrumbShortTitle; int animationEnter = 0; int animationExit = 0; Boolean addToBackStack = false; // Fill options Bundle args = fragment.getArguments(); if (args != null) { if (args.containsKey("animationEnter") && args.containsKey("animationExit")) { animationEnter = args.getInt("animationEnter"); animationExit = args.getInt("animationExit"); } if (args.containsKey("breadCrumbTitle")) { breadCrumbTitle = args.getString("breadCrumbTitle"); } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(getActivity()); } if (args.containsKey("breadCrumbShortTitle")) { breadCrumbShortTitle = args.getString("breadCrumbShortTitle"); } else { breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(getActivity()); } if (args.containsKey("fragmentName")) { fragName = args.getString("fragmentName"); } if (args.containsKey("addToBackStack")) { addToBackStack = args.getBoolean("addToBackStack"); } } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(getActivity()); breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(getActivity()); } // Set option to fragment manager if (animationEnter != 0 && animationExit != 0) { transaction.setCustomAnimations(animationEnter, animationExit); } if (breadCrumbTitle != null && !breadCrumbTitle.isEmpty()) { transaction.setBreadCrumbTitle(breadCrumbTitle); } if (breadCrumbShortTitle != null && !breadCrumbShortTitle.isEmpty()) { transaction.setBreadCrumbShortTitle(breadCrumbShortTitle); } if (transaction.isAddToBackStackAllowed() && addToBackStack) { transaction.addToBackStack(fragName); } // Add fragment transaction.add(viewId, fragment, fragName).commitAllowingStateLoss(); }
From source file:com.vinexs.eeb.BaseFragment.java
public void replaceFragment(int viewId, Fragment fragment) { if (fragment.isAdded()) { return;/* w w w .j a v a 2 s . c om*/ } FragmentManager fragMgr = getActivity().getSupportFragmentManager(); FragmentTransaction transaction = fragMgr.beginTransaction(); FragmentManager.BackStackEntry lastEntry = fragMgr.getBackStackEntryCount() == 0 ? null : fragMgr.getBackStackEntryAt(fragMgr.getBackStackEntryCount() - 1); // Transaction options String fragName = fragment.getClass().getSimpleName(); String breadCrumbTitle; String breadCrumbShortTitle; int animationEnter = 0; int animationExit = 0; Boolean addToBackStack = true; // Fill options Bundle args = fragment.getArguments(); if (args != null) { if (args.containsKey("animationEnter") && args.containsKey("animationExit")) { animationEnter = args.getInt("animationEnter"); animationExit = args.getInt("animationExit"); } if (args.containsKey("breadCrumbTitle")) { breadCrumbTitle = args.getString("breadCrumbTitle"); } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(getActivity()); } if (args.containsKey("breadCrumbShortTitle")) { breadCrumbShortTitle = args.getString("breadCrumbShortTitle"); } else { breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(getActivity()); } if (args.containsKey("fragmentName")) { fragName = args.getString("fragmentName"); } if (args.containsKey("addToBackStack")) { addToBackStack = args.getBoolean("addToBackStack"); } } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(getActivity()); breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(getActivity()); } // Set option to fragment manager if (animationEnter != 0 && animationExit != 0) { transaction.setCustomAnimations(animationEnter, animationExit); } if (breadCrumbTitle != null && !breadCrumbTitle.isEmpty()) { transaction.setBreadCrumbTitle(breadCrumbTitle); } if (breadCrumbShortTitle != null && !breadCrumbShortTitle.isEmpty()) { transaction.setBreadCrumbShortTitle(breadCrumbShortTitle); } if (transaction.isAddToBackStackAllowed() && addToBackStack) { transaction.addToBackStack(fragName); } // Replace fragment transaction.replace(viewId, fragment, fragName).commitAllowingStateLoss(); }
From source file:org.fuusio.api.flow.AbstractFlow.java
@Override @SuppressWarnings("uncheckked") public void goBack() { final FragmentManager fragmentManager = mFragmentContainer.getSupportFragmentManager(); int index = fragmentManager.getBackStackEntryCount() - 1; while (index >= 0) { final FragmentManager.BackStackEntry entry = fragmentManager.getBackStackEntryAt(index); final String tag = entry.getName(); final FlowFragment fragment = (FlowFragment) fragmentManager.findFragmentByTag(tag); if (isActiveView(fragment)) { fragmentManager.popBackStackImmediate(); index--;/* ww w . j ava 2 s . com*/ } else { mFragmentContainer.showFlowFragment(this, fragment, tag); mBackStackSize = fragmentManager.getBackStackEntryCount(); break; } } }
From source file:net.oremland.rss.reader.MainActivity.java
private int idForPreviousBackStackEntry(FragmentManager manager) { int entryCount = manager.getBackStackEntryCount(); int initialCount = this.initialBackStackCount(); if (entryCount > initialCount) { FragmentManager.BackStackEntry entry = manager.getBackStackEntryAt(entryCount - initialCount); return Integer.parseInt(entry.getName()); }// w w w . ja v a 2 s. c om return R.id.feeds_list_fragment; }
From source file:com.munger.passwordkeeper.MainActivity.java
/** * Handle the behaviour of the back button. *///from ww w. j a v a2 s. c om @Override public void onBackPressed() { FragmentManager mgr = getSupportFragmentManager(); int cnt = mgr.getBackStackEntryCount(); if (cnt > 0) { BackStackEntry entry = mgr.getBackStackEntryAt(cnt - 1); String name = entry.getName(); //warn any fragments that care that the back button has been pressed. //if they return true then cancel the back button action boolean keepGoing = true; if (name.equals(ViewDetailFragment.getName())) { keepGoing = viewDetailFragment.backPressed(); } if (!keepGoing) return; //reset the view every time a fragment is popped off the stack super.onBackPressed(); invalidateOptionsMenu(); setEditable(false); } }
From source file:com.vinexs.eeb.BaseActivity.java
public Fragment getTopFragment() { FragmentManager fragMgr = getSupportFragmentManager(); FragmentManager.BackStackEntry backEntry = fragMgr .getBackStackEntryAt(fragMgr.getBackStackEntryCount() - 1); String backEntryName = backEntry.getName(); return fragMgr.findFragmentByTag(backEntryName); }
From source file:org.fuusio.api.flow.AbstractFlow.java
@Override public void onBackStackChanged() { final FragmentManager fragmentManager = mFragmentContainer.getSupportFragmentManager(); final int oldBackStackSize = mBackStackSize; mBackStackSize = fragmentManager.getBackStackEntryCount(); if (mBackStackSize > 0 && oldBackStackSize > mBackStackSize) { final FragmentManager.BackStackEntry entry = fragmentManager.getBackStackEntryAt(mBackStackSize - 1); final String tag = entry.getName(); final Fragment fragment = fragmentManager.findFragmentByTag(tag); if (fragment instanceof View) { onNavigatedBackTo((View) fragment); }/*from w ww . j av a 2 s .c o m*/ } }
From source file:dev.drsoran.moloko.activities.AbstractTasksListActivity.java
private BackStackEntry getTopOfBackStack() { final FragmentManager fragmentManager = getSupportFragmentManager(); final int backStackSize = fragmentManager.getBackStackEntryCount(); return backStackSize > 0 ? fragmentManager.getBackStackEntryAt(backStackSize - 1) : null; }