android.app.FragmentManager#getBackStackEntryCount ( )源码实例Demo

下面列出了android.app.FragmentManager#getBackStackEntryCount ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: RelaxFinger   文件: SettingActivity.java
@Override
public void onBackPressed() {

    FragmentManager fm = getFragmentManager();
    if (fm.getBackStackEntryCount() > 1) {

        fm.popBackStackImmediate();
        SettingActivity.this.setTitle(R.string.title_activity_setting);
        getSupportActionBar().setDisplayHomeAsUpEnabled(false);

    } else {

        clearMemory();
        finish();
    }
}
 
源代码2 项目: Conversations   文件: ConversationsActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (MenuDoubleTabUtil.shouldIgnoreTap()) {
        return false;
    }
    switch (item.getItemId()) {
        case android.R.id.home:
            FragmentManager fm = getFragmentManager();
            if (fm.getBackStackEntryCount() > 0) {
                try {
                    fm.popBackStack();
                } catch (IllegalStateException e) {
                    Log.w(Config.LOGTAG, "Unable to pop back stack after pressing home button");
                }
                return true;
            }
            break;
        case R.id.action_scan_qr_code:
            UriHandlerActivity.scan(this);
            return true;
    }
    return super.onOptionsItemSelected(item);
}
 
@Override
public boolean dispatchKeyEvent(final KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_BACK:
                FragmentManager fm = getFragmentManager();
                int cnt = fm.getBackStackEntryCount();
                if (cnt <= 1) {
                    finish();
                    return false;
                } else {
                    currentPage--;
                }
                break;
            default:
                break;
        }
    }
    return super.dispatchKeyEvent(event);
}
 
源代码4 项目: driveimageview   文件: MainActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            FragmentManager fm = getFragmentManager();
            if (fm.getBackStackEntryCount() > 0) {
                fm.popBackStack();
            }
            return true;
        case ch.haclyon.driveimageview.example.R.id.menu_item_help:
            AboutDialog aboutDialog = new AboutDialog(this);
            aboutDialog.show();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
 
源代码5 项目: LyricHere   文件: ActionBarCastActivity.java
@Override
public void onBackPressed() {
    // If the drawer is open, back will close it
    if (mDrawerLayout != null && mDrawerLayout.isDrawerOpen(Gravity.START)) {
        mDrawerLayout.closeDrawers();
        return;
    }
    // Otherwise, it may return to the previous fragment stack
    FragmentManager fragmentManager = getFragmentManager();
    if (fragmentManager.getBackStackEntryCount() > 0) {
        fragmentManager.popBackStack();
    } else {
        // Lastly, it will rely on the system behavior for back
        super.onBackPressed();
    }
}
 
源代码6 项目: Linphone4Android   文件: LinphoneActivity.java
private void changeFragment(Fragment newFragment, FragmentsAvailable newFragmentType, boolean withoutAnimation) {
	FragmentManager fm = getFragmentManager();
	FragmentTransaction transaction = fm.beginTransaction();

	/*if (!withoutAnimation && !isAnimationDisabled && currentFragment.shouldAnimate()) {
		if (newFragmentType.isRightOf(currentFragment)) {
			transaction.setCustomAnimations(R.anim.slide_in_right_to_left,
					R.anim.slide_out_right_to_left,
					R.anim.slide_in_left_to_right,
					R.anim.slide_out_left_to_right);
		} else {
			transaction.setCustomAnimations(R.anim.slide_in_left_to_right,
					R.anim.slide_out_left_to_right,
					R.anim.slide_in_right_to_left,
					R.anim.slide_out_right_to_left);
		}
	}*/

	if (newFragmentType != FragmentsAvailable.DIALER
			&& newFragmentType != FragmentsAvailable.CONTACTS_LIST
			&& newFragmentType != FragmentsAvailable.CHAT_LIST
			&& newFragmentType != FragmentsAvailable.HISTORY_LIST) {
		transaction.addToBackStack(newFragmentType.toString());
	} else {
		while (fm.getBackStackEntryCount() > 0) {
			fm.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
		}
	}

	transaction.replace(R.id.fragmentContainer, newFragment, newFragmentType.toString());
	transaction.commitAllowingStateLoss();
	fm.executePendingTransactions();

	currentFragment = newFragmentType;
}
 
源代码7 项目: stynico   文件: FilePickerActivity.java
@Override
public void onBackPressed() {
    FragmentManager fm = getFragmentManager();

    if (fm.getBackStackEntryCount() > 0) {
        fm.popBackStack();
        mCurrentPath = FileUtils.cutLastSegmentOfPath(mCurrentPath);
        updateTitle();
    } else {
        setResult(RESULT_CANCELED);
        super.onBackPressed();
    }
}
 
源代码8 项目: Pano360   文件: FilePickerActivity.java
@Override
public void onBackPressed() {
    FragmentManager fm = getFragmentManager();

    if (fm.getBackStackEntryCount() > 0) {
        fm.popBackStack();
        mCurrentPath = FileUtils.cutLastSegmentOfPath(mCurrentPath);
        updateTitle();
    } else {
        setResult(RESULT_CANCELED);
        super.onBackPressed();
    }
}
 
源代码9 项目: beaconloc   文件: BaseActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            FragmentManager fm = getFragmentManager();
            if (fm.getBackStackEntryCount() > 0) {
                fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
            } else {
                finish();
            }
            return true;
        case R.id.action_settings:
            launchSettingsActivity();
            return true;
        case R.id.action_view_on_github:
            launchGitHubPage();
            return true;
        case R.id.action_help:
            launchHelpPage();
            return true;
        case R.id.action_donate:
            launchDonatePage();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
 
源代码10 项目: Pix-Art-Messenger   文件: ConversationsActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (MenuDoubleTabUtil.shouldIgnoreTap()) {
        return false;
    }
    switch (item.getItemId()) {
        case android.R.id.home:
            FragmentManager fm = getFragmentManager();
            if (fm.getBackStackEntryCount() > 0) {
                try {
                    fm.popBackStack();
                } catch (IllegalStateException e) {
                    Log.w(Config.LOGTAG, "Unable to pop back stack after pressing home button");
                }
                return true;
            }
            break;
        case R.id.action_scan_qr_code:
            UriHandlerActivity.scan(this);
            return true;
        case R.id.action_check_updates:
            if (xmppConnectionService.hasInternetConnection()) {
                openInstallFromUnknownSourcesDialogIfNeeded(true);
            } else {
                ToastCompat.makeText(this, R.string.account_status_no_internet, Toast.LENGTH_LONG).show();
            }
            break;
        case R.id.action_invite_user:
            inviteUser();
            break;
    }
    return super.onOptionsItemSelected(item);
}
 
源代码11 项目: Hews   文件: SettingsActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        FragmentManager fm = getFragmentManager();
        if (fm.getBackStackEntryCount() > 0) {
            fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        } else {
            finish();
        }
    }
    return super.onOptionsItemSelected(item);
}
 
源代码12 项目: ZhuanLan   文件: MainActivity.java
@Override
public void onBackPressed() {
    closeDrawer();
    // Otherwise, it may return to the previous fragment stack
    FragmentManager fragmentManager = getFragmentManager();
    if (fragmentManager.getBackStackEntryCount() > 0) {
        fragmentManager.popBackStack();
    } else {
        // Lastly, it will rely on the system behavior for back
        super.onBackPressed();
    }
}
 
源代码13 项目: linphone-android   文件: ChatActivity.java
public void showChatRoomCreation(
        Address peerAddress,
        ArrayList<ContactAddress> participants,
        String subject,
        boolean encrypted,
        boolean isGroupChatRoom,
        boolean cleanBackStack) {
    if (cleanBackStack) {
        FragmentManager fm = getFragmentManager();
        while (fm.getBackStackEntryCount() > 0) {
            fm.popBackStackImmediate();
        }
        if (isTablet()) {
            showEmptyChildFragment();
        }
    }

    Bundle extras = new Bundle();
    if (peerAddress != null) {
        extras.putSerializable("RemoteSipUri", peerAddress.asStringUriOnly());
    }
    extras.putSerializable("Participants", participants);
    extras.putString("Subject", subject);
    extras.putBoolean("Encrypted", encrypted);
    extras.putBoolean("IsGroupChatRoom", isGroupChatRoom);

    ChatRoomCreationFragment fragment = new ChatRoomCreationFragment();
    fragment.setArguments(extras);
    changeFragment(fragment, "Chat room creation", true);
}
 
源代码14 项目: budget-envelopes   文件: EnvelopesActivity.java
@Override public void onBackPressed() {
    FragmentManager fragmentManager = getFragmentManager();
    if (mDrawerLayout.isDrawerOpen(mNavDrawer)) {
        mDrawerLayout.closeDrawers();
    } else if (fragmentManager.getBackStackEntryCount() != 0) {
        fragmentManager.popBackStackImmediate();
        configureFragment(
            fragmentManager.findFragmentById(R.id.content_frame)
        );
    } else {
        super.onBackPressed();
    }
}
 
源代码15 项目: AcDisplay   文件: SubBlacklistActivity.java
private boolean popFragment() {
    FragmentManager fm = getFragmentManager();
    if (fm.getBackStackEntryCount() > 0) {
        fm.popBackStack();
        return true;
    }
    return false;
}
 
源代码16 项目: HeadsUp   文件: SubBlacklistActivity.java
private boolean popFragment() {
    FragmentManager fm = getFragmentManager();
    if (fm.getBackStackEntryCount() > 0) {
        fm.popBackStack();
        return true;
    }
    return false;
}
 
源代码17 项目: masterpassword   文件: SettingsActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == android.R.id.home) {
        FragmentManager fm = getFragmentManager();
        if (fm.getBackStackEntryCount() > 0) {
            fm.popBackStack();
        } else {
            NavUtils.navigateUpFromSameTask(this);
        }
        return true;
    }
    return super.onOptionsItemSelected(item);
}
 
源代码18 项目: android-showcase-template   文件: Navigator.java
public boolean canGoBack(BaseActivity activity) {
    FragmentManager fm = activity.getFragmentManager();
    return fm.getBackStackEntryCount() > 0;
}
 
源代码19 项目: Hews   文件: CommentsActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            if (mIsInReplyMode) {
                showDiscardReplyDialog();
                return true;
            }
            FragmentManager fm = getFragmentManager();
            if (fm.getBackStackEntryCount() > 0) {
                fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
            } else {
                finish();
            }
            break;

        case R.id.action_open_post:
            if (mUrl != null) {
                if (mChromeCustomTabsHelper != null) {
                    // build CustomTabs UI
                    CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder();
                    Utils.setupIntentBuilder(intentBuilder, this, prefs);
                    ChromeCustomTabsHelper.openCustomTab(this, intentBuilder.build(),
                        Utils.validateAndParseUri(mUrl, mPostId), null);
                } else {
                    Intent urlIntent = new Intent(Intent.ACTION_VIEW);
                    urlIntent.setData(Utils.validateAndParseUri(mUrl, mPostId));
                    startActivity(urlIntent);
                }
            }
            break;

        case R.id.action_bookmark:
            changeBookmarkState();
            break;

        case R.id.action_upvote:
            vote(mPostId, Constants.VOTE_UP);
            break;

        case R.id.action_reply:
            if (!Utils.isOnline(this)) {
                Utils.showLongToast(this, R.string.no_connection_prompt);
                return false;
            }
            switchReplyMode(true, mPostId);
            break;

        case R.id.action_refresh:
            CommentsFragment commentFragment =
                (CommentsFragment) getFragmentManager().findFragmentByTag(Constants.FRAGMENT_TAG_COMMENT);
            commentFragment.getPresenter().refresh();
            break;

        case R.id.action_share:
            Intent sendIntent = new Intent();
            sendIntent.setAction(Intent.ACTION_SEND);
            String commentUrl = "https://news.ycombinator.com/item?id=" + mPostId;
            sendIntent.putExtra(Intent.EXTRA_TEXT, commentUrl);
            sendIntent.setType("text/plain");
            startActivity(Intent.createChooser(sendIntent, getString(R.string.share_link_to)));
            break;

        case R.id.action_typography:
            if (!mWindow.isWindowShowing()) {
                mWindow.show();
            } else {
                mWindow.dismiss();
            }
            break;
    }
    return super.onOptionsItemSelected(item);
}
 
源代码20 项目: linphone-android   文件: MainActivity.java
protected void changeFragment(Fragment fragment, String name, boolean isChild) {
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();

    if (transaction.isAddToBackStackAllowed()) {
        int count = fragmentManager.getBackStackEntryCount();
        if (count > 0) {
            FragmentManager.BackStackEntry entry =
                    fragmentManager.getBackStackEntryAt(count - 1);

            if (entry != null && name.equals(entry.getName())) {
                fragmentManager.popBackStack();
                if (!isChild) {
                    // We just removed it's duplicate from the back stack
                    // And we want at least one in it
                    transaction.addToBackStack(name);
                }
            }
        }

        if (isChild) {
            transaction.addToBackStack(name);
        }
    }

    if (getResources().getBoolean(R.bool.hide_bottom_bar_on_second_level_views)) {
        if (isChild) {
            if (!isTablet()) {
                hideTabBar();
            }
        } else {
            showTabBar();
        }
    }

    Compatibility.setFragmentTransactionReorderingAllowed(transaction, false);
    if (isChild && isTablet()) {
        transaction.replace(R.id.fragmentContainer2, fragment, name);
        findViewById(R.id.fragmentContainer2).setVisibility(View.VISIBLE);
    } else {
        transaction.replace(R.id.fragmentContainer, fragment, name);
    }
    transaction.commitAllowingStateLoss();
    fragmentManager.executePendingTransactions();
}