Sembra non esserci un modo semplice per ottenere una finestra di dialogo di avviso per restituire un valore semplice.
Questo codice non funziona (la variabile risposta non può essere impostato dall'interno l'ascoltatore, in realtà non ha nemmeno compilare)Finestra di dialogo di conferma Android che restituisce vero o falso
public static boolean Confirm(Context context) {
boolean answer;
AlertDialog dialog = new AlertDialog.Builder(context).create();
dialog.setTitle("Confirmation");
dialog.setMessage("Choose Yes or No");
dialog.setCancelable(false);
dialog.setButton(DialogInterface.BUTTON_POSITIVE, "Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int buttonId) {
answer = true;
}
});
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int buttonId) {
answer = false;
}
});
dialog.setIcon(android.R.drawable.ic_dialog_alert);
dialog.show();
return answer;
}
NOTA: E 'importante che il metodo è auto contenuto, cioè, non dipende da variabili o costrutti esterni ad esso. Basta chiamarlo e ottenere la tua risposta, vero o falso.
Quindi, cosa fare? Questo semplice desiderio di restituire true o false sembra essere molto più complicato di quanto meriti.
Inoltre, il metodo setButton ha la forma:
dialog.setButton(int buttonId, String buttonText, Message msg)
ma non è chiaro come usarlo, in cui è il meesage inviato, a chi, quale gestore viene utilizzato?
Hai mai trovato una soluzione migliore? – Lion789
@ Lion789 Come ho affermato, questa non è davvero una soluzione e ho spiegato perché con l'attuale sistema operativo Android non ci può essere un'anima. Quindi, in breve, non ho trovato una soluzione migliore. Secondo Android, dovresti inserire il codice nel listener onClick() per la finestra di dialogo. Questo è l'unico modo per eseguirlo dopo aver chiuso la finestra di dialogo. – ilomambo
iLomambo Hai provato quello sulla parte superiore con chiamando Runnable – Lion789