Qualcosa tipo:
L'utente può avere la possibilità di scegliere un'opzione, oppure il popup può essere solo informativo (in tal caso ha solo un pulsante "ok").
L'SDK di Android ci viene in aiuto, permettendoci di creare AlertDialog in modo molto semplice e intuitivo, attraverso un oggetto Builder.
Vediamo un esempio:
new AlertDialog.Builder(this)
// imposta il titolo
.setTitle(R.string.warningTitle)
// imposta il messaggio
.setMessage(R.string.warningText)
// impostiamo l'icona: android.R.drawable contiene un
// insieme di icone per l'uso e già "adattate" al sistema
// su cui andremo a fare l'applicazione
.setIcon(android.R.drawable.ic_dialog_alert)
// imposta il pulsante "positivo", qui uso android.R.string.ok,
// la stringa di default per il pulsante "ok". android.R.string
// contiene moltissime stringhe pronte per l'uso e già
// localizzate.
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// qui dobbiamo scrivere il metodo se l'utente
// seleziona "ok". Il comando dialog.dismiss() fa
// si che l'alert si chiuda quando abbiamo finito
// (va messo come ultima riga).
dialog.dismiss();
}
})
// imposta il pulsante "negativo", qui uso android.R.string.no
.setNegativeButton(android.R.string.no,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// qui dobbiamo scrivere il metodo se l'utente seleziona
// "annulla", di solito dialog.dismiss() è sufficiente.
dialog.dismiss();
}
})
// show mostra il dialog vero e proprio
.show();
Ogni funzione dell'oggetto Builder restituisce il Builder stesso, e questo permette di concatenare le chiamate.
Nel codice ho usato le risorse in R.string, che rappresenta l'insieme delle stringhe adoperate dal programma. Adoperare queste risorse permette di risparmiare tempo di localizzare il programma in diverse lingue, e le tratterò in modo più approfondito in uno dei prossimi post.