Dialog mostrata due volte quando è premuto il pulsante posteriore
-
31-10-2019 - |
Domanda
Nel codice la finestra di dialogo viene mostrata due volte quando premo il pulsante Indietro. Qualcuno può dirmi come ottenere la finestra di dialogo solo una volta?
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed()
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Do you want to save configuration?");
builder.setPositiveButton
("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
//here saveConfiguration is boolean type
if (saveConfiguration())
{
dialog.dismiss();
finish();
}
else
{
dialog.dismiss();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.dismiss();
finish();
}
});
builder.show();
}
}
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow