Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按下后添加带导航抽屉的双击退出?_Java_Android_Navigation Drawer - Fatal编程技术网

Java 按下后添加带导航抽屉的双击退出?

Java 按下后添加带导航抽屉的双击退出?,java,android,navigation-drawer,Java,Android,Navigation Drawer,我想做如下编码 boolean doubleBackToExitPressedOnce = false; @Override public void onBackPressed() { if (getFragmentManager().getBackStackEntryCount() > 0) { getFragmentManager().popBackStack(); } else { Fragment fragment = getFrag

我想做如下编码

boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() > 0) {
        getFragmentManager().popBackStack();
    } else {
        Fragment fragment = getFragmentManager().findFragmentById(R.id.container);
        if (fragment instanceof MainHomeFragment) {
            if (doubleBackToExitPressedOnce) {
                super.onBackPressed();
                return;
            }

            this.doubleBackToExitPressedOnce = true;
            Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();

            new Handler().postDelayed(new Runnable() {

                @Override
                public void run() {
                    doubleBackToExitPressedOnce = false;
                }
            }, 2000);
        }
        else {
            super.onBackPressed();
        }
    }
}
我的问题是当抽屉打开时,反压无法关闭抽屉。。 我想在下面添加代码。。。我应该把代码放在哪里

DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
    if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
       mDrawerLayout.closeDrawer(GravityCompat.START);
    }

将此代码添加到onBackPress方法中

        if (getFragmentManager().getBackStackEntryCount() > 0) {
    getFragmentManager().popBackStack();
} else {

            if (menu1.isOpened()) {

                menu1.close(true);

            } else {
                if (drawer_layout.isDrawerOpen(Gravity.LEFT)) {

                    drawer_layout.closeDrawer(Gravity.LEFT);

                    doubleBackToExitPressedOnce = false;

                } else {

                    if (doubleBackToExitPressedOnce) {
                        super.onBackPressed();
                        return;
                    }

                }
                this.doubleBackToExitPressedOnce = true;
                Toast.makeText(this, "Press again to exit", Toast.LENGTH_SHORT).show();

                new Handler().postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        doubleBackToExitPressedOnce = false;
                    }
                }, 2000);
            }
             }
在“活动”中重写您的on backpressed方法

public void doExitApp(){
                if ((System.currentTimeMillis() - exitTime) > 2000) {
                    Toast.makeText(this, R.string.press_again_exit_app, Toast.LENGTH_SHORT).show();
                    exitTime = System.currentTimeMillis();
                } else {
                    finish();
                }
            }

在onBackPressed()中添加代码,并添加else块来处理双击退出功能。
public void doExitApp(){
                if ((System.currentTimeMillis() - exitTime) > 2000) {
                    Toast.makeText(this, R.string.press_again_exit_app, Toast.LENGTH_SHORT).show();
                    exitTime = System.currentTimeMillis();
                } else {
                    finish();
                }
            }