按下按钮两次关闭活动

时间:2014-05-29 11:04:14

标签: android android-activity

我有一个奇怪的问题。我有一个有两个活动的应用程序"登录"和#34; normalDifficulty"。当我在登录活动中并按下后退按钮时,它会优雅地关闭活动。但当我在" normalDifficulty"然后按回按钮它重新启动我的" normalDifficulty"。关闭" normalDifficulty"活动我必须按两次按钮。无论我做什么,它总是关闭" normalDifficulty"按两次后。请帮助我为什么会发生这种情况以及如何解决这个问题。以下代码我用来关闭活动。

 @Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
        .setTitle("Are you sure you want to exit?")
        .setNegativeButton(android.R.string.no, null)
        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener()     {

            public void onClick(DialogInterface arg0, int arg1) {
                finish();
            }
        }).create().show();
}

我通过super.finish(),this.finish(),NormalDifficulty.finish()修改了这个。但是我的活动总是在按两次后关闭。谢谢。

我正在开始NormalDifficulty活动的代码。这发生在登录活动中,我认为NormalDifficulty受保护。

 enter.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            boolean userNameStatus, emailStatus;
            userNameStatus = validate(userName.getText().toString(), USERNAME_PATTERN);
            emailStatus = validate(email.getText().toString(), EMAIL_PATTERN);
            if(userNameStatus && emailStatus) {
                if(rememberMe.isChecked()) {
                    SharedPreferences settings = getSharedPreferences(
                            PREFRENCES_NAME, Context.MODE_PRIVATE);
                    settings.edit().putString("name", userName.getText().toString())
                            .putString("pwd", email.getText().toString()).commit();
                } else {
                    SharedPreferences settings = getSharedPreferences(
                            PREFRENCES_NAME, Context.MODE_PRIVATE);
                    settings.edit().clear().commit();
                }
            } else {
                showDialog("Invalid UserName or Email-ID");
                return true;
            }

            message = userName.getText().toString();
            startActivity(normalDiffculty);
            finish();
            return true;
        }
    });

1 个答案:

答案 0 :(得分:0)

检查this

您可以像这样添加setCancelable(false)

new AlertDialog.Builder(this)
    .setTitle("Are you sure you want to exit?")
    .setCancelable(false).
    .setNegativeButton(android.R.string.no, null)
    .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener()     {

        public void onClick(DialogInterface arg0, int arg1) {
            finish();
        }
    }).create().show();

这样可以防止在显示对话框后单击后关闭对话框,并且您可以在finish()中调用活动onClick。 <{1>} NO 的正常延续。

希望它有所帮助。