Vous êtes sur la page 1sur 12

Aplicaciones Mviles I 2015-II

Ing. Alberto J. Flor Rodrguez


________________________________________________________________________________

Ciclo de Vida de las Actividades


A lo largo de la ejecucin de una aplicacin existen componentes que sern creados, desechados,
reutilizados y sobre los cuales el usuario navegar para obtener lo que busca de dicha aplicacin.
Por ejemplo, cuando la actividad inicia por primera vez, es lanzada al primer plano y obtiene el foco
del usuario. Durante este proceso, el sistema Android invoca una serie de mtodos que son parte del
ciclo de vida de la actividad, en los cuales se pueden configurar componentes de la visto o lanzar
algunos servicios. En caso el usuario lance otra actividad o cambie hacia otra aplicacin, el sistema
invocar de similar manera otro conjunto de mtodos al momento que la aplicacin o la actividad
actual entre en segundo plano.
En los mtodos de tipo Callback, puedes declarar cmo debe comportarse tu actividad al
momento que deja o entra a estado activo. Por ejemplo, si tu aplicacin contiene algo de streaming
de audio o vdeo a travs de internet; al momento que se ejecuta una nueva actividad, puede pausar
la reproduccin y apagar la conexin de red. Cuando regrese a su aplicacin, puede usted reconectar
o reestablecer el consumo de datos y continuar la reproduccin de su audio o vdeo.

Ahora procederemos a crear una aplicacin nueva, para poder manejar y observar las diferentes
etapas del ciclo de vida de las actividades.
________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________
1. Iniciamos Android Studio e iniciamos un proyecto Nuevo en Android Studio.

2. En la siguiente pantalla vamos a configurar el nombre de la aplicacin, el dominio y su


ubicacin.

________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________
3. Luego seleccionamos el min SDK para nuestra aplicacin y el tipo de dispositivo para el que
la crearemos.

4. En la siguiente pantalla vamos a elegir para efectos de este ejemplo que la actividad inicial
sea de tipo Blank Activity.

________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________
5. Paso siguiente ser escoger el nombre de nuestra actividad, el nombre del recurso que la
dibujar, el ttulo y en caso de tener un men asociado, tambin se deber indicar. Para
efectos de esta primera aplicacin, vamos a dejar los datos como los muestra por defecto.

6. Una vez que pulsamos el botn Finish, Android Studio empezar a generar la estructura y
los archivos necesarios para nuestra aplicacin, algunas de las dependencias no estn
contenidas en Android Studio, es por esto la importancia de estar conectado a una lnea de
internet al momento de la creacin de la aplicacin ya que Android Studio descargar y
configurar automticamente cada dependencia necesaria.
7. El objetivo de nuestra primera aplicacin es observar el comportamiento de nuestra
actividad principal, en torno a los mtodos callback que posee en su ciclo de vida.
8. Abrimos el fichero MainActivity.java incluido en el paquete com.apmv1.ciclodevida,
situado en la estructura de la aplicacin y agregaremos la sobreescritura de los mtodos
callback para mostrar el orden del ciclo de vida:
@Override
protected void onStart(){
super.onStart();
Toast.makeText(this,"Mtodo onStart",Toast.LENGTH_LONG).show();
}

________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________
@Override
protected void onRestart(){
super.onRestart();
Toast.makeText(this,"Mtodo onRestart",Toast.LENGTH_LONG).show();
}
@Override
protected void onResume(){
super.onResume();
Toast.makeText(this,"Mtodo onResume",Toast.LENGTH_LONG).show();
}
@Override
protected void onPause(){
super.onPause();
Toast.makeText(this,"Mtodo onPause",Toast.LENGTH_LONG).show();
}
@Override
protected void onStop(){
super.onStop();
Toast.makeText(this,"Mtodo onStop",Toast.LENGTH_LONG).show();
}
@Override
protected void onDestroy(){
super.onDestroy();
Toast.makeText(this,"Mtodo
onDestroy",Toast.LENGTH_LONG).show();//implementacin estatica y annima del
objeto Toast
}

9. Los mtodos agregados, son los mtodos autollamados durante el ciclo de vida de la
actividad, nota que todos contienen una lnea adicional haciendo uso de la clase Toast con
instanciacin esttica. La clase Toast se utiliza para emitir un mensaje que se superpone a las
capas de primer plano y es siempre visible por sobre la actividad en uso.
10. Compilamos la aplicacin y observamos su funcionamiento. Comprobemos que todos los
mtodos sean llamados de acuerdo al grfico que seala el ciclo de vida de la actividad.

________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________
Opciones de desarrollador

Manipulando la Barra de Acciones (ActionBar)


En la misma aplicacin que generamos anteriormente, vamos a realizar unos cambios tiles sobre
nuestra barra de acciones.
1. Vamos a especificar las acciones mediante un recurso men, para esto vamos a crear un
nuevo fichero en la carpeta res/men de nuestro proyecto.

2. Nombraremos al nuevo fichero main_activity_actions.xml y copiaremos el cdigo siguiente:


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ciclodevida="http://schemas.android.com/apk/res-auto" >
<!-- Search, should appear as action button -->
<item android:id="@+id/action_search"
android:icon="@android:drawable/ic_menu_search"
android:title="@string/action_search"
ciclodevida:showAsAction="ifRoom" />
<!-- Settings, should always be in the overflow -->
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
ciclodevida:showAsAction="never" />
</menu>

En el cdigo anterior observamos que llamamos el dominio android y su esquema android


para definir los elementos internos. Si dejamos el archivo de forma normal y trabajamos con API 21
________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________
o superior tendremos problemas con la parte del showAsAction, as que por este motivo definimos
un nuevo dominio que para este caso le hemos colocado el nombre de la aplicacin, esto no es
mandatorio, podra ser cualquier nombre debido a que el tiempo de vida ser slo el contenido en el
recurso xml y se realiza para no tener conflicto con las llamadas a acciones a lo largo de nuestra
ejecucin.
3. Agregando las acciones declaradas a nuestra barra, para lograr esto, debemos de
indicarle a Android que inflaremos este men como el principal, para esto, vamos a la clase
principal

de

nuestra

aplicacin

busquemos

el

siguiente

mtodo

onCreateOptionsMenu(Menu men); una vez ubicados ah revisemos el cdigo, vemos


que existe una lnea que infla un men, el que est por defecto definido, as que la
cambiaremos y colocaremos el recurso que creamos, quedara algo as:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.

//getMenuInflater().inflate(R.menu.menu_main, menu);
getMenuInflater().inflate(R.menu.main_activity_actions, menu);
return true;

4. Agregando funcionalidad a los botones, para lograr esto vamos a ubicar el mtodo que
recibe

captura

los

tems

elegidos

del

men,

este

mtodo

se

llama

onOptionsItemSelected(MenuItem tem), observamos su cdigo y no es nada complicado,


vamos a ubicas la lnea en la que evala el id capturado y agregaremos la condicional para
nuestro botn de bsqueda.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}else if(id == R.id.action_search){
Toast.makeText(this,"Aca se mostrara el dalogo para
buscar",Toast.LENGTH_SHORT).show();
return true;
}
}

return super.onOptionsItemSelected(item);

________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________

Comunicacin entre Actividades


La siguiente parte de esta prctica se centrar en el uso del transporte de informacin hacia una
nueva actividad para esto disearemos nuestro layout principal de la siguiente forma:

5. Vamos a ubicarnos en el archivo content_main.xml, que es donde se encuentra el mensaje


Hello World! Por defecto al realizar cambios se ver como sigue:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main" tools:context=".MainActivity">
<TextView android:text="Ingrese su nombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txt_nombre" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edt_Nombre"
android:layout_below="@+id/txt_nombre"

________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn_Go"
android:text="@string/btn_go"
android:layout_below="@+id/edt_Nombre"
android:layout_alignParentStart="true" />
</RelativeLayout>

6. Para la parte que sigue agregaremos una nueva actividad en blanco, que ser la que
llamaremos y le enviaremos el mensaje (comunicacin entre actividades).

7. Llamaremos a la nueva actividad MostrarMensaje, y para efectos del ejemplo (lo cual no lo
hace estrictamente necesario) seleccionaremos en Hierarchical Parent, a nuestra Actividad
principal.

________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________

8. Una vez generada podemos dirigirnos a nuestro Manifiesto y observaremos que en la


declaracin de nuestra actividad MostrarMensaje el padre de esa actividad sera
MainActivity.
9. Si compilamos la aplicacin en este momento, nos mostrar nuestro nuevo diseo pero no
har nada, ya que nos falta la captura del nombre y la llamada a la nueva actividad.
10. Ahora nos ubicamos en el fichero content_mostrar_mensaje.xml y agregamos un TextView
para mostrar ah el resultado de la comunicacin:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_mostrar_mensaje"
tools:context="com.apmv1.ciclodevida.MostrarMensaje">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/txt_saludo"/>
</RelativeLayout>

11. Vamos a la clase principal MainActivity para modificar el mtodo onCreate y agregarle la
funcionalidad para el botn creado.
________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________
//Funcionalidad del Botn Saludar
final EditText nombre = (EditText)findViewById(R.id.edt_Nombre);
Button btn_go = (Button)findViewById(R.id.btn_Go);
btn_go.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Colocamos el mvalor en un objeto Bundle
Bundle bundle = new Bundle();
bundle.putString("NOMBRE", nombre.getText().toString());
//Creamos la instancia de la intencin para llamar a la nueva actividad
Intent intent = new Intent();
intent.setClass(MainActivity.this,MostrarMensaje.class);
intent.putExtras(bundle);
startActivity(intent);
}
});

12. Hasta el momento slo conseguiremos que se llame a la nueva actividad, podemos observar
que porque definimos un padre jerrquico para nuestra actividad ahora presenta una flecha
para retornar a la actividad padre.
13. Agregaremos ahora de parte de la actividad MostrarMensaje el cdigo necesario en el
mtodo onCreate para mostrar nuestro mensaje.
14. Para conseguir esto, vamos a la clase MostrarMensaje y en el mtodo onCreate lo definimos
con el siguiente cdigo:
//Recepcin del mensaje y muestreo
Bundle bundle = getIntent().getExtras();
String nombre = "Hola, " + bundle.getString("NOMBRE");
TextView texto = (TextView)findViewById(R.id.txt_saludo);
texto.setText(nombre);

15. Ahora compilamos, escribimos nuestro nombre y probamos la funcionalidad.

Prctica Calificada
Nos han solicitado de la empresa Ortografa y Gramtica que se realice una aplicacin capaz de
determinar si una palabra determinada es o no palndromo, para esto se determin que usted se haga
cargo de dicha aplicacin dndo como tiempo lmite de entrega el da 23 del presente hasta medio
da.

________________________________________________________________________________
Android

Aplicaciones Mviles I 2015-II


Ing. Alberto J. Flor Rodrguez
________________________________________________________________________________
Grupo face SI-661.
Github.
Conceptos de POO, abstraccin, polimorfismo,

________________________________________________________________________________
Android

Vous aimerez peut-être aussi