Usuario:ManuelRomero/Intents
De WikiEducator
< Usuario:ManuelRomero
Revisión a fecha de 11:37 13 nov 2012; ManuelRomero (Discusión | contribuciones)
Intents
- Referencia
http://developer.android.com/reference/android/content/Intent.html
- Definición de la página oficial
Un intent es una descripción abstracta de una operación que va a llevar a cabo
- Es una clase da android que permite instanciar nuevos objetos Activity.
- Es decir nos permite especificar una Activity para que se ejecute
- En Android una aplicacióno o componente no sólo es una Activity
- En Android tenemos los siguientes componentes
- Activity como componenetes de UI
- Services
- Código ejecutándose en segundo plan o
- Broadcast receivers
- Broadcst messages código que responde a un mensaje de transmisión
- Proveedores de contenidos código que abstrae los datos
Intents para lanzar activity
- Uso extremasamente sencillo
- Realicemos un ejemplo sencillo
- Idea: hacer un programa como se ve en la figura
- Cada pantalla será un activity.
- El click del activity 1 abrirá el activity 2
- El click del activity 2 cerrará el activity 2 y volverá al activity 1
Empezamos
- Creamos un proyecto nuevo llamado p.e. usandoIntents
- Clase ActividadPrimera.java
- Layout 'actividad_primera.xml
- Por supuesto los nombres son opciones
- Creamos una clase nueva llamada ActividadSegunada.java
- Al tener dos activity debemos indicarlo en el fichero Manifiest.xml
- Añadimos la nueva clase activity
- Vemos a continuación la parte del manifest con las clases
<activity android:name=".ActividadPrimera" android:label="@string/title_activity_actividad_primera" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ActividadSegunda" android:label="@string/title_activity_actividad_segunda" > <intent-filter> <action android:name="com.example.objetosintents.ActividadSegunda" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
- Nos debemos fijar en el elemento intent-filter
- En este caso el elementos action tiene el nombre de la clase', a diferencia del activity principal' que contenía el valor MAIN
- El elemento category contiene el valor DEFAULT el lugar del valor LAUNCHER
- Esto indica que esta actividad será lanzada por defecto siendo invocada por otra no desde el lanzador de aplicaciones del dispositivos
Los layouts
- Creamos los dos layouts para cada activity
- Cada uno contendrá una etiqueta de texto o label y un botón (por las especificaciones primeras
- Los layouts les hemos llamado en este caso actividad_primera.xml y actividad_segunda.xml
- actividad_primera.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/actividad1" tools:context=".ActividadPrimera" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginLeft="40dp" android:layout_marginTop="41dp" android:onClick="activity1" android:text="Activar activity 2" /> </RelativeLayout>
- actividad_segunda.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/actividad2" tools:context=".ActividadSegunda" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:layout_marginTop="58dp" android:onClick="activity2" android:text="Cerrar actividad 2 y volver a 1" /> </RelativeLayout>
- En el fichero string.xml tenemos las etiquetas usadas
<string name="title_activity_actividad_primera">ActividadPrimera</string> <string name="title_activity_actividad_segunda">ActividadSegunda</string> <string name="actividad1">Esta es la actividad primera y principal</string> <string name="actividad2">Esta es la actividad segunda</string>