【发布时间】:2014-05-29 19:23:57
【问题描述】:
我有一个奇怪的问题。我有一个具有两个活动“登录”和“正常难度”的应用程序。当我在登录活动中并按下返回按钮时,它会优雅地关闭活动。但是当我处于“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;
}
});
【问题讨论】:
-
请将代码放在您打开正常难度活动的位置。
-
尝试将finsh()改为super.onBackPressed();