The problem is that you throw the Popit and before you call super.onBackPressed(); delete it :)
Alert dialog is gone before the user see anything
-
02-12-2021 - |
Pregunta
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
PopIt("Exit Application", "Are you sure you want to exit?");
super.onBackPressed();
}
public void PopIt( String title, String message ){
new AlertDialog.Builder(this)
.setTitle( title )
.setMessage( message )
.setPositiveButton("YES", new OnClickListener()
{
public void onClick(DialogInterface arg0, int arg1) {
//do stuff onclick of YES
finish();
}
}).setNegativeButton("NO", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
//do stuff onclick of CANCEL
Toast.makeText(getBaseContext(), "You touched CANCEL", Toast.LENGTH_SHORT).show();
}
}).show();
}
this alert dialog gone so fast as I cant read or click on it !! why is that ?
Solución
Otros consejos
super.onBackPressed();
remove this line.
if you don't remove it, the default functionality will be triggered which will close the current activity.
Try this
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
PopIt("Exit Application", "Are you sure you want to exit?");
}
Try this
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setTitle("Really Exit?")
.setMessage("Are you sure you want to exit?")
.setNegativeButton(android.R.string.no, null)
.setPositiveButton(android.R.string.yes, new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
youractivity.super.onBackPressed();
}
}).create().show();
}
Remove this line super.onBackPressed();
You are displaying dialog in onBackPressed()
so its like your are overriding behavior of onBackPressed();
so don't call super class method.
remove the super.onBackPressed();
this will work :
public void onBackPressed() {
// TODO Auto-generated method stub
PopIt("Exit Application", "Are you sure you want to exit?");
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow