Java 类android.app.FragmentManager.OnBackStackChangedListener 实例源码

项目:android_packages_apps_tv    文件:TvOverlayManager.java   
private void runAfterSideFragmentsAreClosed(final Runnable runnable) {
    if (mSideFragmentManager.isSidePanelVisible()) {
        // When the side panel is closing, it closes all the fragments, so the new fragment
        // should be opened after the side fragment becomes invisible.
        final FragmentManager manager = mMainActivity.getFragmentManager();
        mOnBackStackChangedListener = new OnBackStackChangedListener() {
            @Override
            public void onBackStackChanged() {
                if (manager.getBackStackEntryCount() == 0) {
                    manager.removeOnBackStackChangedListener(this);
                    mOnBackStackChangedListener = null;
                    runnable.run();
                }
            }
        };
        manager.addOnBackStackChangedListener(mOnBackStackChangedListener);
    } else {
        runnable.run();
    }
}
项目:MentorMe    文件:EditProfileActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {        
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit_profile);
    if (getIntent().hasExtra("persona")) {
        mPersona = (Persona)getIntent().getSerializableExtra("persona");
    } else {
        mPersona = Persona.BOTH;
    }
    setupViews();
    getFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() {
        @Override
        public void onBackStackChanged() {
            updateTitle();
        }
    });
    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    setupKeyboardVisibilityListener();
}
项目:FCM    文件:PlayingGround.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_playing_ground);

    flTopLeft = (FrameLayout) findViewById(R.id.FrameLayoutTopLeft);
    flBottom = (LinearLayout) findViewById(R.id.LinearLayoutBottom);
    sentences = new SentenciasSQLitePlayingGround(this);
    fm = getFragmentManager();
    fssp = new FragmentSelectStartingPlayers();
    ffe = new FragmentFinishEvent();
    ft = fm.beginTransaction();
    ft.add(flTopLeft.getId(), fssp);
    ft.add(flBottom.getId(), ffe);
    ft.commit();
    fm.addOnBackStackChangedListener(new OnBackStackChangedListener() {

        @Override
        public void onBackStackChanged() {
            // Si BACKSTACK esta vacio entonces boton seleccionado de jugador sin pintar y 'Entered' false.
            if(fm.getBackStackEntryCount() == 0){
                Log.d("onBackStackChanged", "HA LLEGADO A 0");
                entered = false;
                lastPlayerID = -1;
            }

        }
    });

}
项目:Vafrinn    文件:ManageBookmarkActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        if (getApplication() instanceof ChromeApplication) {
            ((ChromeApplication) getApplication())
                    .startBrowserProcessesAndLoadLibrariesSync(true);
        }
    } catch (ProcessInitException e) {
        Log.e(TAG, "Unable to load native library.", e);
        ChromeApplication.reportStartupErrorAndExit(e);
        return;
    }
    if (!DeviceFormFactor.isTablet(this)) {
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN
                | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    }

    if (savedInstanceState == null) {
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
        fragmentTransaction.add(
                android.R.id.content, generateBaseFragment(), BASE_ADD_EDIT_FRAGMENT_TAG);
        fragmentTransaction.commit();
    } else {
        initializeFragmentState();
    }

    // When adding or removing fragments, ensure the keyboard is hidden if visible as the
    // editing fields are no longer on the screen.
    getFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() {
        @Override
        public void onBackStackChanged() {
            UiUtils.hideKeyboard(findViewById(android.R.id.content));
        }
    });
    if (checkPermission(Manifest.permission.NFC, Process.myPid(), Process.myUid())
            == PackageManager.PERMISSION_GRANTED) {
        NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
        if (nfcAdapter != null) nfcAdapter.setNdefPushMessage(null, this);
    }
}
项目:CS492-FA13    文件:ActivityDynamicLayout.java   
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_dynamic_layout);

    // Get a reference to the detail frame layout.
    _detailFrameLayout = (FrameLayout) findViewById(R.id.frameDetail);

    // Get a reference to the Fragment Manager to be used for
    // dynamically adding fragments to this hosting Activity.
    _fragmentManager = getFragmentManager();

    if (savedInstanceState == null)
    {
        // New instance, so create fragments and add to the activity.
        _listFragment = new FragmentList();
        _detailFragment = new FragmentDetail();

        // Add fragments to the appropriate frame layout containers.
        _fragmentManager.beginTransaction()
                        .add(R.id.frameList, _listFragment)
                        .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
                        .commit();
    }
    else
    {   
        // Fragments have already been added, just find them.
        _listFragment = (FragmentList) _fragmentManager.findFragmentById(R.id.frameList);
        _detailFragment = (FragmentDetail) _fragmentManager.findFragmentById(R.id.frameDetail);

        if (_detailFragment == null)
        {
            _detailFragment = new FragmentDetail();
        }

        setLayout();
    }

    _fragmentManager.addOnBackStackChangedListener(new OnBackStackChangedListener()
    {
        @Override
        public void onBackStackChanged()
        {   
            // Register for the back button and reset the layout
            // by removing the detail fragment.
            setLayout();

            if (_detailFragment.isAdded() == false)
            {
                _listFragment.getListView().clearChoices();
            }
        }
    });
}
项目:CS492-FA13    文件:ActivityConfigChangeDynamicLayout.java   
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_dynamic_layout);

    // Get a reference to the Fragment Manager to be used for
    // dynamically adding fragments to this hosting Activity.
    _fragmentManager = getFragmentManager();

    // Get references to the frame layouts in order to set appropriate
    // layout_weight parameter.
    _listFrameLayout = (FrameLayout) findViewById(R.id.frameList);
    _detailFrameLayout = (FrameLayout) findViewById(R.id.frameDetail);

    // Do we have any saved state, i.e. selectedClassID?
    if (savedInstanceState == null)
    {
        _listFragment = new FragmentList();
        _detailFragment = new FragmentDetail();
    }
    else
    {
        // Retrieve the saved ClassID index that was selected in the list.
        _selectedClassID = savedInstanceState.getInt(SELECTED_CLASS_ID);

        // Primarily used when rotating from portrait detail fragment visible
        // to landscape to simply apply the correct fragment to the frame layout.
        // The detail fragment was used to replace the list fragment in the list
        // frame layout for purposes of demonstrating the back stack.
        _fragmentManager.popBackStackImmediate();

        _listFragment = (FragmentList) _fragmentManager.findFragmentById(R.id.frameList);
        _detailFragment = (FragmentDetail) _fragmentManager.findFragmentById(R.id.frameDetail);

        if (_detailFragment == null)
        {
            _detailFragment = new FragmentDetail();
        }
    }

    // Determine orientation of the device to display single pane vs. dual pane layout.
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
    {
        _fragmentManager.beginTransaction()
                        .replace(R.id.frameList, _listFragment)
                        .replace(R.id.frameDetail, _detailFragment)
                        .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
                        .commit();
    }
    else
    {
        _fragmentManager.beginTransaction()
                        .replace(R.id.frameList, _listFragment)
                        .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
                        .commit();
    }

    // Set layout_weight for the given orientation.
    setLayout();

    _fragmentManager.addOnBackStackChangedListener(new OnBackStackChangedListener()
    {
        @Override
        public void onBackStackChanged()
        {
            if (_listFragment.isAdded() == true)
            {
                _listFragment.getListView().clearChoices();
            }
        }
    });
}