|
|
Línea 1: |
Línea 1: |
| {{:Usuario:ManuelRomero/Android/nav}} | | {{:Usuario:ManuelRomero/Android/nav}} |
− | <br> | + | <br> |
− | | + | |
− | ===Actividades, fragmentos e Intens===
| + | |
− | <br/>
| + | |
− | {{Definicion|'''''Actividad''''' es una ventana que contiene la interfaz de usuario de una aplicacion}}
| + | |
− | *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()
| + | |
− | [[Imagen:CicloVidaActividad.png]]
| + | |
− | ===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>
| + | |
− | 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()");
| + | |
− | }
| + | |
− | | + | |
− | }
| + | |
− | | + | |
− | </Source>
| + | |