Override на данный вид деятельности onBackPressed следующим в случае, если есть, например, сделаны изменения некоторых значений и забыл обновить те потом, но вместо нажатия на кнопку назад:
@Override
public void onBackPressed() {
if(<condition>) {
AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setTitle("Changes were made. Do you want to exit without update?");
ad.setPositiveButton(
"OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
backPress();
}
}
);
ad.setNegativeButton(
"Update the changes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
<Update the changes>;
Toast.makeText(getApplicationContext(), "Changes were updated", Toast.LENGTH_SHORT).show();
backPress();
}
}
);
ad.setCancelable(false);
ad.show();
} else {
backPress();
}
}
private void backPress() {
super.onBackPressed();
}
Я попробовал ваш код, и он покажет мне эту ошибку «KeyEvent не может быть разрешен для типа» –
@josepheshak Вам нужно импортировать KeyEvent – user3648217