[Android - JAVA] - Come creare Custom Dialog

11.08.2012 22:00
E' sicuramente doveroso dedicare un piccolo spazio per spiegare come creare finestre di dialogo personalizzate. Molto utili per creare un interfaccia utente veloce e sopratutto pratica.
 
La creazione di una finestra di Dialogo con un Layour è semplice e ci consente di visualizzare notifiche o informazioni immediate sulla activity corrente. Di seguito il codice commentato di un piccolo esempio.

 

public void ShowDialogDetails(){
  
    //Inizializzo il Dialog
    ModelDialog = new Dialog(Main.this);
    //set del layout
    ModelDialog.setContentView(R.layout.model_dialog);
    //set del Titolo
    ModelDialog.setTitle("MCM");
    //set se è Cancelable di default è a true se volessimo impostare
    //una risposta utente del tipo si no dovremmo impostarla a false
    ModelDialog.setCancelable(true);
  
    //Inizializzo gli oggetti e imposto i valori
    TextView txtScale = (TextView) ModelDialog.findViewById(R.id.textview1);
    txtScale.setText("Messaggio di Prova");
  
    //set Del button
    Button button = (Button) ModelDialog.findViewById(R.id.button1);
    //aggiungo il listener dell'onclick per la chiusura della dialog
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            ModelDialog.cancel();
        }
    });
    //Show della Dialog
    ModelDialog.show();
}
 

e model_dialog.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="https://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:weightSum="10" android:orientation="horizontal" android:layout_height="wrap_content">
    <TextView android:layout_weight="1" android:textColor="#FFFFFF" android:textStyle="bold" android:layout_height="wrap_content" android:textSize="18dp" android:layout_width="fill_parent" android:gravity="center_horizontal" android:id="@+id/textview1"></TextView>
    <Button android:id="@+id/button1" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_width="fill_parent" android:layout_marginTop="10px"></Button>
</LinearLayout>


Crea un sito gratis Webnode