Escolar Documentos
Profissional Documentos
Cultura Documentos
Dilogos
Si una actividad requiere informacin adicional del usuario,
se puede obtener abriendo una nueva actividad que recoja los
datos y se los transfiera a la actividad original.
Sin embargo, puede ser tedioso de programar y complicar
excesivamente
nuestra aplicacin.
Los dilogos simplifican estas tareas.
Dilogos
Crear un dialogo
Un dialogo es una ventana que se abre sobre nuestra actividad
mostrando un
mensaje
y nos permite interactuar con el usuario mediante botones.
Dilogos
Para mostrar un dialogo invocamos el mtodo showDialogO de la
clase Activity.
Esto hace que se ejecute el mtodo onCreateDialog de la clase
Activity que deberemos sobrescribir para construir nuestro dialogo,
que ser un objeto de tipo Dialog :
Dialog
diag;
Dilogos
Para construir un dialogo debemos definir un objeto de la clase
Builder o
constructor de dilogos, mediante :
Builder builder = new AlertDialog.Builder(this);
Dilogos
Ejecutando distintos mtodos de este objeto Builder, podemos ir
definiendo los
contenidos de nuestro dialogo.
Finalmente, el dialogo se crea mediante :
Dialogo = builder.create();
Ejercicio
Ejercicio
En el siguiente ejemplo creamos un dialogo muy simple que solo
incluye un
icono y un mensaje de texto.
En primer lugar, creamos una actividad Dialogo con el siguiente
layout, que incluye un botn para lanzar el dialogo:
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog ;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener ;
import android.widget.Button ;
public class Dialogo extends Activity implements OnClickListener
{
/ * * Called when the activity is f i r s t c re a te d . * /
@override
public void onCreate(Bundle savedlnstanceState )
{
super.onCreate(saved lnstanceState );
setContentView(R.layout.main);
Button boton= (Button) findViewByld(R.id.buttonl);
boton.setOnClickListener(this);
}
@Override
public void onClick(View argO)
{
showDialog(0);
}
@Override
protected Dialog onCreateDialog(int id)
{
Dialog dialogo=null;
if(id==0)
{
Builder builder=new AlertDialog.Builder(this) ;
builder=builder.setIcon(R.drawable.ic_launcher);
builder=builder.setTitle("Este es el aspecto de un dialogo");
dialogo=builder.create ();
}
return dialogo;
}
}
A continuacin se detalla el
programa
DialogoConBotones.java
La interfaz para los botones
se implementa en la clase
DListener.
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.Dialoglnterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Textview;
public class DialogoConBotones Activity extends Activity
implements OnClickListener
{
Textview tv;
/** Called when the activity is first created. */
public void onCreate(Bundle savedlnstanceState)
{
super.onCreate(savedlnstanceState);
setContentView(R.layout.main);
tv=(Textview) findViewByld(R .id.textview);
Button boton= (Button) findViewByld(R .id.buttonl)
boton.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
showDialog(0) ;
}
@Override
protected Dialog onCreateDialog(int id)
{
DListener listener= new DListener();
Dialog dialogo=null;
if(id==0)
{
Builder builder=new AlertDialog.Builder(this);
builder=builder.setIcon(R.drawable.ic_launcher);
builder=builder.setTitle("Esto es un dialogo con botones")
builder=builder.setMessage("Este es el mensaje. "\n Pulse uno de los tres botones
para continuar
builder=builder.setPositiveButton("Boton positivo", listener);
builder=builder.setNegativeButton("Boton negativo", listener);
builder=builder.setNeutralButton("Boton neutro", listener);
dialogo=builder.create();
}
return dialogo;
}
} // end
Dialoglnterface.OnClickListener
}