我有一个奇怪的问题。我有一个有两个活动的应用程序"登录"和#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;
}
});
答案 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 的正常延续。
希望它有所帮助。