AlertDialog总是按下正向按钮
问题描述:
我在onBackPressed()中有一个AlertDialog,如果我点击肯定按钮,它必须用Intent启动一个活动。AlertDialog总是按下正向按钮
@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。
答
尝试删除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();
}
答
刚刚提交super.onBackPressed()它完成您的活动。