Dialog personalizado en Android

Un dialog podría decirse que es una mini-actividad con layout y componentes propios dentro de una actividad principal. Los dialog se abren sobre la actividad principal, dejándola momentáneamente en suspenso e inhabilitando todos sus componentes. Presionando la tecla back o ejecutando un método, este dialogo se cierra y volvemos a nuestra activity.

 

Lo primero que tienen que hacer es crear un layout para este dialog. Este layout será igual que los creados para las activities. Los mismos componentes y la misma forma de gestionarlos.

A este archivo xml, lo llamaremos, dialog_ejemplo.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout_root"
              android:layout_height="fill_parent"
              android:orientation="vertical" android:layout_width="fill_parent" 
            <LinearLayout android:layout_width="match_parent" 
             android:id="@+id/linearLayout1" android:layout_height="wrap_content" 
             android:orientation="vertical" android:layout_marginBottom="10sp">
            <TextView android:layout_width="wrap_content" android:textSize="16sp" 
                       android:text="TextView"
                       android:layout_height="wrap_content"
                       android:id="@+id/TextView01" 
                       android:layout_gravity="center_horizontal">
             </TextView>
             <EditText android:layout_width="match_parent" 
                       android:id="@+id/edit_nombre”                        
                       android:layout_height="wrap_content"                        
           </EditText>
          </LinearLayout>

 

En el lugar que quieran mostrar el dialog deben escribir las siguientes instrucciones:

Dialog dialog = new Dialog(this); 
                dialog.setContentView(R.layout.dialog_ejemplo);
                dialog.setTitle("titulo");                
                TextView text = (TextView) dialog.findViewById(R.id.TextView01);
                text.setText("mensaje");               
                dialog.show();
 
 

El codigo casi que se explica solo pero vamos a escribir algo para justificar el enorme sueldo que me paga google.

Lo primero que hacemos es crear un variable del tipo dialog y le pasamos como parámetro la instancia de la activity. Luego seteamos el layout que habíamos creado previamente y escribimos un titulo.

Tengan cuidado cuando levantan los componentes XML dentro del dialog. Fijarse que el clásico findViewById tiene un dialog. que lo preside. Luego manejamos esos componentes de manera habitual. Pueden poner botones, lanzar actividades, escribir texto, etc. Como dije al principio del post, es una mini-actividad dentro de una actividad principal.

Por ultimo, y quizás lo más importante es mostrar el dialog con la ultima instrucción .show(). Para cerrar esta ventana se usa el .dismiss() y si queremos realizar alguna operación cuando se cierra el dialog, sobrescribimos el método onDismiss(…)

 

 

One thought on “Dialog personalizado en Android

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *