Você está na página 1de 8

Universidad Nacional Micaela Bastidas de Apurmac Carrera Profesional de Ing. Informtica y Sistemas Curso de actualizacin profesional DOCENTE: Ing.

Manuel Jess Ibarra Cabrera TEMA: Uso de Activity e Intent en Android


Gua prctica de laboratorio N

1. Objetivos de la prctica
Poner en prctica los conceptos de Activity e Intent mediante un programa prctico en Android.

2. Trabajo Preparatorio
Conocer la programacin orientada a objetos Conocer la programacin en Java. Haber realizado la gua anterior

3. Marco terico
Activity.- Las actividades son las ms comunes de los cuatro bloques de construccin para Android. Una actividad es por lo general es una sola pantalla en la aplicacin. Cada actividad se lleva a cabo como una sola clase que extiende la clase base actividad. Content providers.- Las aplicaciones pueden almacenar sus datos en archivos, una base de datos SQLite, preferencias o cualquier otro mecanismo que tenga sentido. Un proveedor de contenido, es til si se desea que los datos de la aplicacin puedan ser compartidos con otras aplicaciones. Un proveedor de contenido es una clase que implementa un conjunto estndar de mtodos para permitir que otras aplicaciones puedan almacenar y recuperar el tipo de datos que se maneja por ese proveedor de contenidos Services.- Un servicio es el cdigo que es de larga duracin (vida) y se ejecuta sin una interfaz de usuario. Un buen ejemplo de esto es un reproductor que reproduce canciones desde una lista. Intents.- Android usa una clase especial llamada la intencin de pasar de una pantalla a otra. Intents describe lo que quiere que se haga una solicitud. Las dos partes ms importantes de la estructura de datos intencin son: la accin y los datos sobre la cual actuar.

4. Ejercicio: Hacer un programa que sume 2 nmeros enteros


a) Primera parte: sencilla Crear el proyecto, para esto ir a File, New, Android Project.

Luego pulsar Next

Luego Next

Finish Luego crear Disear la siguiente pantalla:

Agregamos en main.xml

<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/txtNro1" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/editNro1" android:inputType="text" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/txtNro2" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/editNro2" android:inputType="text" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/btnSumar" />

Agregamos en strings.xml <string <string <string <string <string name="txtNro1">Ingrese Nro1.:</string> name="txtNro2">Ingrese Nro2.:</string> name="editNro1"></string> name="editNro2"></string> name="btnSumar">Sumar</string>

Configuramos el Emulador de dispositivos para Android Ir al Men: Window, AVD Manager

Luego Compilamos: Click derecho sobre el proyecto, luego Run as Android Aplication

Hasta aqu todo fcil y sencillo, ahora se debe programar para poder intercambiar informacin entre una actividad y otra, porque el resultado se mostrar en la siguiente pantalla. b) Segunda parte: interaccin de datos entre actividades

Ahora definiremos la interfaz de la segunda pantalla, creando un nuevo fichero llamado frmresultado.xml, y aadiendo esta vez tan solo una etiqueta (TextView) para mostrar el mensaje personalizado al usuario. Veamos cmo quedara nuestra segunda pantalla:]
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/TxtResultado" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>

Una vez definida la interfaz de las pantallas de la aplicacin deberemos implementar la lgica de la misma. Como ya hemos comentado, la lgica de la aplicacin se definir en ficheros java independientes. Para la pantalla principal ya tenemos creado un fichero por defecto llamado FrmResultado.java. Las diferentes pantallas de una aplicacin Android se definen mediante objetos de tipo Activity. Por tanto, lo primero que encontramos en nuestro fichero java es la definicin de una nueva clase SumaNrosActivity que extiende a Activity. El nico mtodo que sobreescribiremos de esta clase ser el mtodo OnCreate, llamado cuando se crea por primera vez la actividad. En este mtodo lo nico que encontramos en principio, adems de la llamada a su implementacin en la clase padre, es la llamada al mtodo setContentView(R.layout.main). Con esta llamada estaremos indicando a Android que debe establecer como interfaz grfica de esta actividad la definida en el recurso R.layout.main, que no es ms que la que hemos especificado en el fichero /res/layout/main.xml. Una vez ms vemos la utilidad de las diferentes constantes de recursos creadas automticamente en la clase R al compilar el proyecto. En principio vamos a crear una nueva actividad para la segunda pantalla de la aplicacin anloga a sta primera, para lo que crearemos una nueva clase FrmResultado que exienda de Activity y que implemente el mtodo onCreate indicando que utilice la interfaz definida en R.layout.frmmensaje Como vemos, el cdigo incluido por defecto en estas clases lo nico que hace es generar la interfaz de la actividad. A partir de aqu nosotros tendremos que incluir el resto de la lgica de la aplicacin. Y vamos a empezar con la actividad principal SumaNrosActivity, obteniendo una referencia a los diferentes controles de la interfaz que necesitemos manipular, en nuestro caso slo el cuadro de texto y el botn. Para ello utilizaremos el mtodo findViewById() indicando el ID de cada control, definidos como siempre en la clase R: Una vez tenemos acceso a los diferentes controles, ya slo nos queda implementar las acciones a tomar cuando pulsemos el botn de la pantalla. Para ello implementaremos el evento onClick de dicho botn, agregando el cdigo a la clase SumaNrosActivity quedara as:
//Localizar los controles final EditText txtNro1 = (EditText)findViewById(R.id.edNro1); final EditText txtNro2 = (EditText)findViewById(R.id.edNro2); final Button btnHola = (Button)findViewById(R.id.btnSumar); btnHola.setOnClickListener(new OnClickListener() { //@Override public void onClick(View v) { //Creamos el Intent Intent intent = new Intent(SumaNrosActivity.this, FrmResultado.class); //Creamos la informacin a pasar entre actividades Bundle b = new Bundle(); b.putString("NRO1", txtNro1.getText().toString()); b.putString("NRO2", txtNro2.getText().toString()); //Aadimos la informacin al intent intent.putExtras(b); //Iniciamos la nueva actividad startActivity(intent); } });

La comunicacin entre los distintos componentes y aplicaciones en Android se realiza mediante intents, por lo que el primer paso ser crear un objeto de este tipo. Existen varias variantes del constructor de la clase Intent, cada una de ellas dirigida a unas determinadas acciones, pero en nuestro caso particular vamos a utilizar el intent para llamar a una actividad desde otra de la misma aplicacin, para lo que pasaremos al constructor una referencia a la propia actividad llamadora (SumaNrosActivity.this), y la clase de la actividad llamada (FrmResultado.class). Si quisiramos tan slo mostrar una nueva actividad ya tan slo nos quedara llamar a startActivity() pasndole como parmetro el intent creado. Pero en nuestro ejemplo queremos tambin pasarle cierta informacin a la actividad, concretamente el nombre que introduzca el usuario en el cuadro de texto. Para hacer esto vamos a crear un objeto Bundle, que puede contener una lista de pares clave-valor con toda la informacin a pasar entre las actividades. En nuestro caso slo aadiremos un dato de tipo String mediante el mtodo putString(clave, valor). Tras esto aadiremos la informacin al intent mediante el mtodo putExtras(bundle). Finalizada la actividad principal de la aplicacin pasamos ya a la secundaria. Comenzaremos de forma anloga a la anterior, ampliando el mtodo onCreate obteniendo las referencias a los objetos que manipularemos, esta vez slo la etiqueta de texto. Tras esto viene lo ms interesante, debemos recuperar la informacin pasada desde la actividad principal y asignarla como texto de la etiqueta. Para ello accederemos en primer lugar al intent que ha originado la actividad actual mediante el mtodo getIntent() y recuperaremos su informacin asociada (objeto Bundle) mediante el mtodo getExtras(). Hecho esto tan slo nos queda construir el texto de la etiqueta mediante su mtodo setText(texto) y recuperando el valor de nuestra clave almacenada en el objeto Bundle mediante getString(clave).
public class FrmResultado extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout. frmresultado); //======>Agregado desde aqui en adeante //Localizar los controles TextView txtRpta = (TextView)findViewById(R.id. TxtResultado); //Recuperamos la informacin pasada en el intent Bundle bundle = this.getIntent().getExtras(); //Construimos el mensaje a mostrar String nro1=bundle.getString("NRO1"); String nro2=bundle.getString("NRO2"); int rpta=(Integer.parseInt(nro1)+Integer.parseInt(nro2)); txtRpta.setText("El resultado es: " + rpta); } }

Con esto hemos concluido la lgica de las dos pantallas de nuestra aplicacin y tan slo nos queda un paso importante para finalizar nuestro desarrollo. Como indicamos anteriormente cualquier aplicacin Android utiliza un fichero especial en formato XML (AndroidManifest.xml) para definir, entre otras cosas, los diferentes elementos que la componen. Por tanto, todas las actividades de nuestra aplicacin deben quedar convenientemente recogidas en este fichero. La actividad principal ya debe aparecer puesto que se cre de forma automtica al crear el nuevo proyecto Android, por lo que debemos aadir tan slo la segunda. Para este ejemplo nos limitaremos a incluir la actividad en el XML, ms adelante veremos que opciones adicionales podemos especificar. Agregamos la actividad en el AndroidManifest.xml, quedara as: <activity android:name="manuel.demos.FrmResultado" /> Finalmente compilar y ejecutar el proyecto, quedando de la siguiente manera:

Y resultado final despus de hacer click en Sumar sera sera:

5. Trabajo de investigacin Modificar el programa anterior, de tal manera que permita obtener los datos de un alumno y luego almacene los datos a una base de datos o a un archivo XML.

Você também pode gostar