back to top

Creare un AlertDialog – Guida Sviluppo App Android

Altro strumento che comunemente viene utilizzato all’interno di molte applicazioni è l’AlertDialog. Questo elemento viene utilizzato per mostrare un messaggio informativo all’utente, tipicamente un errore, un comportamento non desiderato oppure una richiesta di conferma da parte dell’utente per una qualche operazione (è dunque in grado di ricevere e gestire degli input da parte dell’utente). Per intenderci è quella finestra pop-up che appare, con una piccola animazione, sostituendo l’activity che in quel momento è visualizzata a schermo.

Per esempio un’applicazione che richiede una connessione ad Internet per compiere alcune operazioni, potrebbe mostrare un’AlertDialog all’utente nel caso in cui il dispositivo non si riesca a collegare ad una rete Wi-Fi.

Bisogna precisare che l’AlertDialog, una volta mostrata a schermo, renderà l’activity che l’ha generata priva di interazione con l’utente. Si potrà nuovamente interagire con l’activity solo ed esclusivamente quando si deciderà di chiudere l’AlertDialog.

Vediamo adesso come costruire una AlertDialog personalizzata nel titolo e nel messaggio ed avente due bottoni ai quali verrà associato un listener che sarà in grado di capire quali dei due bottoni è stato cliccato.

Per prima cosa vediamo il codice relativo alla creazione di una AlertDialog. Per far ciò possiamo tranquillamente posizionarci in un file .java (se utilizziamo il vecchio progetto posizioniamoci nel file MainActivity.java) e come prima cosa importiamo i seguenti pacchetti:

import android.app.AlertDialog;
import android.content.DialogInterface;

Il primo pacchetto importerà la classe relativa all’AlertDialog ed il secondo pacchetto importerà gli strumenti necessari per poter applicare un listener ai bottoni che aggiungeremo alla AlertDialog.

Importati gli strumenti necessari inseriamo il seguente codice all’interno del metodo OnCreate ed ovviamente dopo l’invocazione del setContentView:

AlertDialog.Builder miaAlert = new AlertDialog.Builder(this);
miaAlert.setTitle("AlertDialog di MrWebMaster");
miaAlert.setMessage("Questa è la mia prima AlertDialog");
AlertDialog alert = miaAlert.create();
alert.show();

Analizzando il codice vediamo che la creazione dell’intera struttura della AlertDialog viene affidata all’oggetto AlertDialog.Builder che, attraverso l’invocazione dei metodo setTitle e setMessage imposta il titolo ed il messaggio della AlertDialog da mostrare all’utente. Da notare che al costruttore dell’oggetto AlertDialog.Builder viene passato come contesto this ovvero l’activity con cui stiamo lavorando in questo momento.

Strutturata l’AlertDialog viene creato un oggetto AlertDialog inizializzato con le caratteristiche impostate dal builder attraverso il metodo onCreate. Fino a questo momento abbiamo solamente istanziato l’oggetto AlertDialog e se lanciassimo l’applicazione non la vedremmo apparire sullo schermo. Per ovviare a ciò si invoca il metodo show che appunto permette la visualizzazione a schermo dell’AlertDialog.

Una pratica molto comune è quella di aggiungere prima del titolo dell’AlertDialog un’immagine esplicativa che dovrebbe rappresentare il significato del messaggio. Per intenderci se il messaggio mostrato all’utente è un messaggio d’errore sarebbe opportuno inserire un’immagine che per esempio rappresenti un punto esclamativo su sfondo rosso oppure, se il messaggio è warning, associare la classica immagine di un punto esclamativo inscritto in un triangolo giallo.

Per mostrare come compiere questa ulteriore personalizzazione utilizzeremo l’immagine icon.png (quella che identifica la nostra applicazione nel menù) localizzata dentro la cartella res/drawable.

E’ sufficiente inserire nel builder questa ulteriore riga di codice:

miaAlert.setIcon(R.drawable.icon);

Nel prossimo capitolo andremo ad aggiungere i bottoni alla AlertDialog e assoceremo i listener.

Pubblicità

In questa guida...