Dialogos para Android

20
Diálogos

description

cuadros de dialogos para android, ventanas emergentes y/o cuadros de dialogo, toast

Transcript of Dialogos para Android

Presentacin de PowerPoint

DilogosSi 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 excesivamentenuestra aplicacin.

Los dilogos simplifican estas tareas.DilogosDilogosCrear un dialogo

Un dialogo es una ventana que se abre sobre nuestra actividad mostrando unmensaje

y nos permite interactuar con el usuario mediante botones.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 :DilogosDialog diag;Para construir un dialogo debemos definir un objeto de la clase Builder oconstructor de dilogos, mediante :

Builder builder = new AlertDialog.Builder(this);DilogosEjecutando distintos mtodos de este objeto Builder, podemos ir definiendo loscontenidos de nuestro dialogo.

Finalmente, el dialogo se crea mediante :Dialogo = builder.create();DilogosEjercicioEn el siguiente ejemplo creamos un dialogo muy simple que solo incluye unicono y un mensaje de texto.

En primer lugar, creamos una actividad Dialogo con el siguiente layout, que incluye un botn para lanzar el dialogo:Ejercicio

A continuacin, escribimos el siguiente programa Dialogo.java, que incluyeel mtodo onCreateDialog( int id ) , dependiente de un parametro entero quepermite definir varios dilogos distintos dependiendo de las necesidades delprograma. Dentro de este mtodo definimos un icono y un texto para el dialogo.Aqu se muestra el resultado :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 . * /@overridepublic void onCreate(Bundle savedlnstanceState ) {super.onCreate(saved lnstanceState );

setContentView(R.layout.main);Button boton= (Button) findViewByld(R.id.buttonl);boton.setOnClickListener(this);}@Overridepublic void onClick(View argO) {showDialog(0); }@Overrideprotected 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; }}

Dilogos con botonesMediante onCreateDialog, podemos incluir hasta tres botones en el dialogo,denominados :boton positivo, boton negativo y boton neutro.

El boton positivo (primer botn) se crea con el metodo setPositiveButton , que toma como argumentos el texto del botn y un objeto que implementa la interfazDialoglnterface.OnClickListener, con las instrucciones a ejecutar al pulsar el botn (similar a la interfaz OnClickListener).

Los botones neutro y negativo se definen de forma similar. Para saber que botn se hapulsado, usamos las constantes de la clase Dialoglnterface

BUTTON_POSITIVE, BUTTON_NEGATIVE, BUTTON_NEUTRAL,Para el ejemplo utilizaremos el siguiente layout:

< LinearLayoutxmlns:android=ff http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:background="#ffffff">

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 Activityimplements 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);}@Overridepublic void onClick(View v) {showDialog(0) ;}@Overrideprotected 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 continuarbuilder=builder.setPositiveButton("Boton positivo", listener);builder=builder.setNegativeButton("Boton negativo", listener);builder=builder.setNeutralButton("Boton neutro", listener);dialogo=builder.create();} return dialogo; }class Dlistener implements Dialoglnterface.OnClickListener{@Overridepublic void onClick(Dialoglnterface dialog, int which){if(which == Dialoglnterface.BUTTON POSITIVE)tv.setText("Boton positivo pulsado");i f (which == Dialoglnterface.BUTTON_NEGATIVE)tv.setText("Boton negativo pulsado");if(which == Dialoglnterface.BUTTON_NEUTRAL)tv.setText("Boton neutro pulsado");} } // end Dialoglnterface.OnClickListener}