我在onBackPressed()中有一个AlertDialog,如果我点击肯定按钮,它必须启动一个含有Intent的活动。
@Override
public void onBackPressed() {
super.onBackPressed();
android.app.AlertDialog.Builder logoutDialog = new android.app.AlertDialog.Builder(MainActivity.this);
logoutDialog.setTitle("Logout");
logoutDialog.setMessage("¿Are you sure that you want to exit? Your session will end."
);
logoutDialog.setPositiveButton("LOGOUT",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent i = new Intent(MainActivity.this, LoginActivity.class);
startActivity(i);
finish();
}
}
);
logoutDialog.setNegativeButton("CANCEL",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}
);
logoutDialog.show();
}
但是当我按下对话框时出现不到一秒钟,然后它进入预期的活动但没有按下PositiveButton。
答案 0 :(得分:2)
尝试删除super.onBackPressed();
@Override
public void onBackPressed() {
//super.onBackPressed();
android.app.AlertDialog.Builder logoutDialog = new android.app.AlertDialog.Builder(MainActivity.this);
logoutDialog.setTitle("Logout");
logoutDialog.setMessage("¿Are you sure that you want to exit? Your session will end."
);
logoutDialog.setPositiveButton("LOGOUT",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent i = new Intent(MainActivity.this, LoginActivity.class);
startActivity(i);
finish();
}
}
);
logoutDialog.setNegativeButton("CANCEL",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}
);
logoutDialog.show();
}
答案 1 :(得分:0)
只需提交super.onBackPressed()即可完成您的活动。