Diferencia entre revisiones de «Usuario:ManuelRomero/PrimeraAplicación»
De WikiEducator
Línea 8: | Línea 8: | ||
*El objetivo de una actividad es interactuar con el usuario | *El objetivo de una actividad es interactuar con el usuario | ||
*Una actividad tiene vida propia cumpliendo un ciclo de vida | *Una actividad tiene vida propia cumpliendo un ciclo de vida | ||
+ | #toda actividad deriva de la clase '''''Activity''''' | ||
===Ciclo de vida de una actividad=== | ===Ciclo de vida de una actividad=== | ||
#Creacion de la actividad | #Creacion de la actividad | ||
Línea 25: | Línea 26: | ||
[[Imagen:CicloVidaActividad.png]] | [[Imagen:CicloVidaActividad.png]] | ||
===Código de ejemplo=== | ===Código de ejemplo=== | ||
+ | #Creamos un nuevo proyecto llamado Actividad1 | ||
+ | #Aceptamos por defecto las opciones | ||
+ | #Y vamos al fuente (src... MainActivity.java) | ||
+ | El sistema nos ha creado el siguiente contendio | ||
+ | <Source lang=java> | ||
+ | package com.example.ciclovidaactividad; | ||
+ | |||
+ | import android.os.Bundle; | ||
+ | import android.app.Activity; | ||
+ | import android.view.Menu; | ||
+ | |||
+ | public class MainActivity extends Activity { | ||
+ | |||
+ | @Override | ||
+ | public void onCreate(Bundle savedInstanceState) { | ||
+ | super.onCreate(savedInstanceState); | ||
+ | setContentView(R.layout.activity_main); | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public boolean onCreateOptionsMenu(Menu menu) { | ||
+ | getMenuInflater().inflate(R.menu.activity_main, menu); | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | *La clase de actividad carga su componente de interfaz de usuario utilizanndo '''''res/layout/activity_main.xml''''' | ||
+ | *Lo podemos ver en modo gráfico y el contenido del fichero | ||
+ | [[image:OpcionesLayout.png]] | ||
+ | <Source lang=java> | ||
+ | <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:layout_width="wrap_content" | ||
+ | android:layout_height="wrap_content" | ||
+ | android:layout_centerHorizontal="true" | ||
+ | android:layout_centerVertical="true" | ||
+ | android:text="@string/hello_world" | ||
+ | tools:context=".MainActivity" /> | ||
+ | |||
+ | </RelativeLayout> | ||
+ | *Ahora debemos cargar la actividad en el fichero '''''AndoridManifest.xml''''' | ||
+ | *Si editamos el fichero vemos que ya está cargado | ||
+ | *Existen asistentes para hacer las cosas de manera manual y no tocar el fuente xml | ||
+ | [[image:OpcionesManifest.png]] | ||
+ | |||
+ | </source> | ||
+ | |||
+ | </source> | ||
<Source lang=java> | <Source lang=java> | ||
package com.example.activity101; | package com.example.activity101; |
Revisión de 01:05 2 nov 2012
Actividades, fragmentos e Intens
- Una aplicación puede tener una o más actividades
- El objetivo de una actividad es interactuar con el usuario
- Una actividad tiene vida propia cumpliendo un ciclo de vida
- toda actividad deriva de la clase Activity
Ciclo de vida de una actividad
- Creacion de la actividad
onCreate()
- Actividad visible
onStart()
- Actividad interactuando con el usuario
onResume()
- Actividad se detiene y otra se reanuda
onPause()
- Actividad ya no es visible para el usuario
onStop()
- Actividad se destruyeya no es visible para el usuario
onDestroy()
- Actividad detenida se reanuda
onRestart()
Código de ejemplo
- Creamos un nuevo proyecto llamado Actividad1
- Aceptamos por defecto las opciones
- Y vamos al fuente (src... MainActivity.java)
El sistema nos ha creado el siguiente contendio
package com.example.ciclovidaactividad; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } *La clase de actividad carga su componente de interfaz de usuario utilizanndo '''''res/layout/activity_main.xml''''' *Lo podemos ver en modo gráfico y el contenido del fichero [[image:OpcionesLayout.png]] <Source lang=java> <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:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world" tools:context=".MainActivity" /> </RelativeLayout> *Ahora debemos cargar la actividad en el fichero '''''AndoridManifest.xml''''' *Si editamos el fichero vemos que ya está cargado *Existen asistentes para hacer las cosas de manera manual y no tocar el fuente xml [[image:OpcionesManifest.png]]
</source>
package com.example.activity101; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.util.Log; public class MainActivity extends Activity { String tag="Ciclo de vida"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(tag,"Dentro del evento onCreate()"); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } @Override public void onStart(){ super.onStart(); Log.d(tag,"Dentro del evento onStart()"); } @Override public void onRestart(){ super.onRestart(); Log.d(tag,"Dentro del evento onReset()"); } @Override public void onResume(){ super.onResume(); Log.d(tag,"Dentro del evento onResume()"); } @Override public void onPause(){ super.onPause(); Log.d(tag,"Dentro del evento onPause()"); } @Override public void onStop(){ super.onStop(); Log.d(tag,"Dentro del evento onStop()"); } @Override public void onDestroy(){ super.onDestroy(); Log.d(tag,"Dentro del evento onDestroy()"); } }