Android返回导航器中的第一个片段

Android返回导航器中的第一个片段,第1张

概述我有一个在NavigationDrawer中有多个片段的应用程序.以下是我的代码:@OverridepublicbooleanonPrepareOptionsMenu(Menumenu){//ifnavdrawerisopened,hidetheactionitemsbooleandrawerOpen=mDrawerLayout.isDrawerOpen(mDrawerList);

我有一个在NavigationDrawer中有多个片段的应用程序.

以下是我的代码:

@H_301_7@@OverrIDe    public boolean onPrepareOptionsMenu(Menu menu) {        // if nav drawer is opened, hIDe the action items        boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);        menu.findItem(R.ID.action_search).setVisible(!drawerOpen);        return super.onPrepareOptionsMenu(menu);    }    /**     * Diplaying fragment vIEw for selected nav drawer List item     * */    private voID displayVIEw(int @R_502_4612@) {        // update the main content by replacing fragments        fragment = null;        switch (@R_502_4612@) {        case 0:            fragment = new HomeFragment();            break;        case 1:            fragment = new galleryFragment();            break;        case 2:            fragment = new ContactFragment();            break;        default:            break;        }        if (fragment != null) {            FragmentManager fragmentManager = getFragmentManager();            fragmentManager.beginTransaction()                    .replace(R.ID.frame_container, fragment).commit();            // update selected item and Title, then close the drawer            mDrawerList.setItemChecked(@R_502_4612@, true);            mDrawerList.setSelection(@R_502_4612@);            setTitle(navMenuTitles[@R_502_4612@]);            mDrawerLayout.closeDrawer(mDrawerList);        } else {            // error in creating fragment            Log.e("MainActivity", "Error in creating fragment");        }    }    @OverrIDe    public voID setTitle(CharSequence Title) {        mTitle = Title;        getActionbar().setTitle(mTitle);    }    /**     * When using the ActionbarDrawerToggle, you must call it during     * onPostCreate() and onConfigurationChanged()...     */    @OverrIDe    protected voID onPostCreate(Bundle savedInstanceState) {        super.onPostCreate(savedInstanceState);        // Sync the toggle state after onRestoreInstanceState has occurred.        mDrawerToggle.syncState();    }    @OverrIDe    public voID onConfigurationChanged(Configuration newConfig) {        super.onConfigurationChanged(newConfig);        // Pass any configuration change to the drawer toggls        mDrawerToggle.onConfigurationChanged(newConfig);    }    @OverrIDe    public voID onBackpressed() {        if (fragment != null) {            FragmentManager fragmentManager = getFragmentManager();            fragmentManager.beginTransaction()                    .add(R.ID.frame_container, fragment).commit();            int @R_502_4612@ = 0;            fragment = new HomeFragment();            // update selected item and Title, then close the drawer            mDrawerList.setItemChecked(@R_502_4612@, true);            mDrawerList.setSelection(@R_502_4612@);            setTitle(navMenuTitles[@R_502_4612@]);            mDrawerLayout.closeDrawer(mDrawerList);        } else {            // error in creating fragment            Log.e("MainActivity", "Error in creating fragment");        }     } 

它基本上做了什么,它首先到HomeFragment,当我想去另一个片段MediaFragment并决定回去按后退按钮,我想去HomeFragment,当我想关闭应用程序再次按下后退按钮它将现在就像gmail应用程序一样关闭应用程序.我怎样才能做到这一点?我使用我在onBackpressed()中输入的代码时遇到了问题.每当我转到其他片段时,HomeFragment就会显示出来.有任何想法吗?对你的帮助表示感谢.

更新:在我进入MediaFragment并按下后退按钮之前,它会自动关闭应用程序.它不应该是,但它应该去HomeFragment,当它在HomeFragment,我点击后退按钮然后它将关闭应用程序.

解决方法:

为什么不跟踪选择的最后位置,而不是在onBackpressed中复制代码?

@H_301_7@int selected@R_502_4612@ = 0;private voID displayVIEw(int @R_502_4612@) {    ... // All your current code    selected@R_502_4612@ = @R_502_4612@;}@OverrIDepublic voID onBackpressed() {    if (selected@R_502_4612@ != 0) {        displayVIEw(0);    } else {        super.onBackpressed();}
总结

以上是内存溢出为你收集整理的Android返回导航器中的第一个片段全部内容,希望文章能够帮你解决Android返回导航器中的第一个片段所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:http://outofmemory.cn/web/1115679.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存