List of usage examples for android.support.v4.app FragmentManager getBackStackEntryCount
public abstract int getBackStackEntryCount();
From source file:uk.co.nevarneyok.ux.MainActivity.java
/** * Method clear fragment backStack (back history). On bottom of stack will remain Fragment added by {@link #addInitialFragment()}. *///from w ww . j av a 2s. c om private void clearBackStack() { Timber.d("Clearing backStack"); FragmentManager manager = getSupportFragmentManager(); if (manager.getBackStackEntryCount() > 0) { if (BuildConfig.DEBUG) { for (int i = 0; i < manager.getBackStackEntryCount(); i++) { Timber.d("BackStack content_%d= id: %d, name: %s", i, manager.getBackStackEntryAt(i).getId(), manager.getBackStackEntryAt(i).getName()); } } FragmentManager.BackStackEntry first = manager.getBackStackEntryAt(0); manager.popBackStackImmediate(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE); } Timber.d("backStack cleared."); // TODO maybe implement own fragment backStack handling to prevent banner fragment recreation during clearing. // http://stackoverflow.com/questions/12529499/problems-with-android-fragment-back-stack< }
From source file:com.andryr.musicplayer.MainActivity.java
@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); switch (id) { case android.R.id.home: FragmentManager fm = getSupportFragmentManager(); if (fm.getBackStackEntryCount() > 0) { fm.popBackStack();/*from w w w.jav a 2 s. co m*/ } else { showLibrary(); } return true; case R.id.action_search: NavigationUtils.showSearchActivity(this, SEARCH_ACTIVITY); return true; case R.id.action_equalizer: NavigationUtils.showEqualizer(this); return true; case R.id.action_preferences: NavigationUtils.showPreferencesActivity(this); break; case R.id.action_sleep_timer: SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); if (SleepTimer.isTimerSet(prefs)) { DialogUtils.showSleepTimerDialog(this, mSleepTimerDialogListener); } else { DialogUtils.showSleepHmsPicker(this, mHmsPickerHandler); } break; } return super.onOptionsItemSelected(item); }
From source file:com.example.android.networkconnect.MainActivity.java
@Override public void onBackPressed() { Log.i("ActivityInTab", "onBackPressed"); FragmentManager manager = getSupportFragmentManager(); if (manager.getBackStackEntryCount() > 1) { super.onBackPressed(); } else {//from www . j a v a2s. c o m super.onBackPressed(); } }
From source file:cn.edu.zafu.corepage.base.BaseActivity.java
/** * fragment// w w w. j ava 2 s. c om * @param pageName page?? * @return ?Fragment */ @Override public boolean findPage(String pageName) { int size = mActivities.size(); int j = size - 1; boolean hasFind = false; for (; j >= 0; j--) { WeakReference<BaseActivity> ref = mActivities.get(j); if (ref != null) { BaseActivity item = ref.get(); if (item == null) { Log.d(TAG, "item is null"); continue; } FragmentManager manager = item.getSupportFragmentManager(); int count = manager.getBackStackEntryCount(); for (int i = count - 1; i >= 0; i--) { String name = manager.getBackStackEntryAt(i).getName(); if (name.equalsIgnoreCase(pageName)) { hasFind = true; break; } } if (hasFind) { break; } } } return hasFind; }
From source file:cn.edu.zafu.corepage.base.BaseActivity.java
/** * ?fragmnet/*from w w w .ja v a 2 s. c o m*/ * * @return ?Fragment */ public BaseFragment getActiveFragment() { if (this.isFinishing()) { return null; } FragmentManager manager = this.getSupportFragmentManager(); if (manager != null) { int count = manager.getBackStackEntryCount(); if (count > 0) { String tag = manager.getBackStackEntryAt(count - 1).getName(); return (BaseFragment) manager.findFragmentByTag(tag); } } return null; }
From source file:cn.edu.zafu.corepage.base.BaseActivity.java
/** * ??/*from ww w . j a va 2s .c o m*/ * @param fragmentTag fragmenttag * @return Fragment?? */ @Override public boolean isFragmentTop(String fragmentTag) { int size = mActivities.size(); if (size > 0) { WeakReference<BaseActivity> ref = mActivities.get(size - 1); BaseActivity item = ref.get(); if (item != null && item == this) { FragmentActivity activity = item; FragmentManager manager = activity.getSupportFragmentManager(); if (manager != null) { int count = manager.getBackStackEntryCount(); if (count >= 1) { FragmentManager.BackStackEntry entry = manager.getBackStackEntryAt(count - 1); if (entry.getName().equalsIgnoreCase(fragmentTag)) { return true; } } } } } return false; }
From source file:ru.orangesoftware.financisto.activity.MainActivity.java
@Override public void onBackPressed() { FragmentManager fragmentManager = getSupportFragmentManager(); if (fragmentManager.getBackStackEntryCount() > 1) { fragmentManager.popBackStack();//ww w. j a v a2s. co m mDrawerLayout.closeDrawers(); } else { finishAfterTransition(); } }
From source file:org.gateshipone.malp.application.activities.MainActivity.java
@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. FragmentManager fragmentManager = getSupportFragmentManager(); switch (item.getItemId()) { case android.R.id.home: if (fragmentManager.getBackStackEntryCount() > 0) { onBackPressed();/*from ww w . ja v a 2s . co m*/ } else { // back stack empty so enable navigation drawer mDrawerToggle.setDrawerIndicatorEnabled(true); if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } } } return super.onOptionsItemSelected(item); }
From source file:org.wikipedia.gallery.GalleryActivity.java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gallery); initToolbar();/*from w w w . j ava 2s. c o m*/ toolbarContainer = findViewById(R.id.gallery_toolbar_container); infoContainer = findViewById(R.id.gallery_info_container); setBackgroundGradient(infoContainer, Gravity.BOTTOM); progressBar = findViewById(R.id.gallery_progressbar); descriptionText = findViewById(R.id.gallery_description_text); descriptionText.setShadowLayer(2, 1, 1, color(R.color.black54)); descriptionText.setMovementMethod(linkMovementMethod); licenseIcon = findViewById(R.id.gallery_license_icon); licenseIcon.setOnClickListener(licenseShortClickListener); licenseIcon.setOnLongClickListener(licenseLongClickListener); creditText = findViewById(R.id.gallery_credit_text); creditText.setShadowLayer(2, 1, 1, color(R.color.black54)); errorView = findViewById(R.id.view_gallery_error); ((ImageView) errorView.findViewById(R.id.view_wiki_error_icon)).setColorFilter(color(R.color.base70)); ((TextView) errorView.findViewById(R.id.view_wiki_error_text)).setTextColor(color(R.color.base70)); errorView.setBackClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); errorView.setRetryClickListener(new View.OnClickListener() { @Override public void onClick(View v) { errorView.setVisibility(View.GONE); loadGalleryContent(); } }); if (getIntent().hasExtra(EXTRA_PAGETITLE)) { pageTitle = getIntent().getParcelableExtra(EXTRA_PAGETITLE); } initialFilename = getIntent().getStringExtra(EXTRA_FILENAME); wiki = getIntent().getParcelableExtra(EXTRA_WIKI); galleryCache = new HashMap<>(); galleryAdapter = new GalleryItemAdapter(this); galleryPager = findViewById(R.id.gallery_item_pager); galleryPager.setAdapter(galleryAdapter); pageChangeListener = new GalleryPageChangeListener(); galleryPager.addOnPageChangeListener(pageChangeListener); funnel = new GalleryFunnel(app, wiki, getIntent().getIntExtra(EXTRA_SOURCE, 0)); if (savedInstanceState == null) { if (initialFilename != null) { funnel.logGalleryOpen(pageTitle, initialFilename); } } else { controlsShowing = savedInstanceState.getBoolean("controlsShowing"); initialImageIndex = savedInstanceState.getInt("pagerIndex"); // if we have a savedInstanceState, then the initial index overrides // the initial Title from our intent. initialFilename = null; FragmentManager fm = getSupportFragmentManager(); if (getSupportFragmentManager().getBackStackEntryCount() > 0) { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); for (int i = 0; i < fm.getBackStackEntryCount(); i++) { Fragment fragment = fm.findFragmentById(fm.getBackStackEntryAt(i).getId()); if (fragment instanceof GalleryItemFragment) { ft.remove(fragment); } } ft.commitAllowingStateLoss(); } } toolbarContainer.post(new Runnable() { @Override public void run() { setControlsShowing(controlsShowing); } }); loadGalleryContent(); }
From source file:gr.scify.newsum.ui.Facebook.java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) != Configuration.SCREENLAYOUT_SIZE_NORMAL & (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) != Configuration.SCREENLAYOUT_SIZE_SMALL) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }/* w ww.j a va 2 s .c om*/ SharedPreferences userlang = getSharedPreferences("lang", 0); String newlang = userlang.getString("lang", Locale.getDefault().getLanguage()); // Changed getApplicationContext() to "this" Setlanguage.updateLanguage(this, newlang); uiHelper = new UiLifecycleHelper(this, callback); uiHelper.onCreate(savedInstanceState); if (savedInstanceState != null) { String name = savedInstanceState.getString(PENDING_ACTION_BUNDLE_KEY); pendingAction = PendingAction.valueOf(name); } setContentView(R.layout.facebook); Bundle extras = getIntent().getExtras(); summaryF = extras.getString("summaryF"); loginButton = (LoginButton) findViewById(R.id.login_button); loginButton.setUserInfoChangedCallback(new LoginButton.UserInfoChangedCallback() { @Override public void onUserInfoFetched(GraphUser user) { Facebook.this.user = user; updateUI(); // It's possible that we were waiting for this.user to be populated in order to post a // status update. handlePendingAction(); } }); profilePictureView = (ProfilePictureView) findViewById(R.id.profilePicture); greeting = (TextView) findViewById(R.id.greeting); postStatusUpdateButton = (Button) findViewById(R.id.postStatusUpdateButton); postStatusUpdateButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { onClickPostStatusUpdate(); } }); controlsContainer = (ViewGroup) findViewById(R.id.main_ui_container); final FragmentManager fm = getSupportFragmentManager(); Fragment fragment = fm.findFragmentById(R.id.fragment_container); if (fragment != null) { // If we're being re-created and have a fragment, we need to a) hide the main UI controls and // b) hook up its listeners again. controlsContainer.setVisibility(View.GONE); } // Listen for changes in the back stack so we know if a fragment got popped off because the user // clicked the back button. fm.addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() { @Override public void onBackStackChanged() { if (fm.getBackStackEntryCount() == 0) { // We need to re-show our UI. controlsContainer.setVisibility(View.VISIBLE); } } }); }