Está en la página 1de 17

Interfaces Activities en Android

Activities

Una aplicacin = Muchas actividades

Clases pblicas, que heredan de android.app.Activity El mtodo onCreate() debe ser implementado

OnCreate() recibe como parmetro un objeto de la clase Bundle con la informacin del estado anterior de la actividad, si se tiene

Se debe definir el layout de la GUI, a travs del mtodo setContentView()

setContentView() recibe como parmetro el id del layout a utilizar

Cada actividad debe ser declarada en el manifest

package com.wirbi.activities; package com.wirbi.activities; import import import import android.app.Activity; android.app.Activity; android.os.Bundle; android.os.Bundle;

public class ActivityPrincipal extends Activity { public class ActivityPrincipal extends Activity { @Override @Override public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.onCreate(savedInstanceState); setContentView(R.layout.principal); setContentView(R.layout.principal); } }

} }

Agregar al Manifest

<application <application android:icon="@drawable/ic_launcher" android:icon="@drawable/ic_launcher" android:label="@string/app_name" > android:label="@string/app_name" > <activity <activity android:name=".ActivityPrincipal" android:name=".ActivityPrincipal" android:label="@string/app_name" > android:label="@string/app_name" > <intent-filter> <intent-filter> <action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </intent-filter> </activity> </activity> <activity <activity android:label="@string/app_name" android:label="@string/app_name" android:name=".ActivitySecundaria"></activity> android:name=".ActivitySecundaria"></activity> </application> </application>

Intents

Objetos de la clase android.content.Intent Manejan informacin desde y hacia otras activities Explcitos

Nombran al componente que los necesita Preguntan que componente o servicio es el adecuado para realizar la peticin

Implcitos

Se le pueden asignar ms informacin por medios de extras

Con el mtodo putExtra(key, valor)

Intents explcitos Iniciar activities

Crear el Intent asignndole el contexto de la aplicacin y la Activity que queremos mostrar Asignar datos a enviar a la siguiente Activity Iniciar la Activity por medio del mtodo startActivity()

Pasndole como parmetro un Intent

public void btnSiguienteOnClick(View button){ public void btnSiguienteOnClick(View button){ Intent intent = new Intent(this, ActivitySecundaria.class); Intent intent = new Intent(this, ActivitySecundaria.class); intent.putExtra("aplicacion", "Manejo de activities"); intent.putExtra("aplicacion", "Manejo de activities"); intent.putExtra("empresa", "Wirbi"); intent.putExtra("empresa", "Wirbi"); } } startActivity(intent); startActivity(intent);

Enviando desde ActivitiyPrincipal.class a ActivitySecundaria.class Enviando desde ActivitiyPrincipal.class a ActivitySecundaria.class

Intents explcitos Recibir datos

Obtener el conjunto de extras del Intent que invoc esta Activity por medio de un Bundle

getIntent().getExtras(); getString() getBoolean() getDouble() getFloat() Etc...

Obtener cada extra de acuerdo a su tipo de dato


@Override @Override public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.onCreate(savedInstanceState); setContentView(R.layout.secundaria); setContentView(R.layout.secundaria); initLayout(); initLayout(); Bundle extras = getIntent().getExtras(); Bundle extras = getIntent().getExtras(); if(extras != null){ if(extras != null){ String aplicacion = extras.getString("aplicacion"); String aplicacion = extras.getString("aplicacion"); String empresa = extras.getString("empresa"); String empresa = extras.getString("empresa"); txtAplicacion.setText(aplicacion); txtAplicacion.setText(aplicacion); txtEmpresa.setText(empresa); txtEmpresa.setText(empresa);

} }

} }

public void initLayout(){ public void initLayout(){ txtAplicacion = (EditText) findViewById(R.id.txtAplicacion); txtAplicacion = (EditText) findViewById(R.id.txtAplicacion); txtEmpresa = (EditText) findViewById(R.id.txtEmpresa); txtEmpresa = (EditText) findViewById(R.id.txtEmpresa); } }

Recibiendo en ActivitySecundaria.class Recibiendo en ActivitySecundaria.class

Intents explcitos Iniciar activities esperando respuesta

Para saber algun resultado cuando una Activity termina Por medio del mtodo startActivityForResult() Pasndole como parmetros un Intent y un cdigo que identifique a la Activity de la cual vamos a recibir la respuesta

Si >= 0, ser retornado en onActivityResult cuando la activity a mostrar exista

En la Activity inicial declarar el mtodo onActivityResult(int requestCode, int resultCode, Intent data)

int requestCode

El cdigo con el que identificamos a la activity que mostraremos El cdigo resultado de ejecutar la activity

int resultCode

RESULT_OK o RESULT_CANCELED

Intent data

Intent que puede contener datos de la activity que mostraremos

private final int REQUEST_CODE_ACTIVITY_SECUNDARAIA = 1; private final int REQUEST_CODE_ACTIVITY_SECUNDARAIA = 1; ... ... public void btnSiguienteResultOnClick(View button){ public void btnSiguienteResultOnClick(View button){ Intent intent = new Intent(this, ActivitySecundaria.class); Intent intent = new Intent(this, ActivitySecundaria.class); intent.putExtra("aplicacion", "Manejo de activities"); intent.putExtra("aplicacion", "Manejo de activities"); intent.putExtra("empresa", "Wirbi"); intent.putExtra("empresa", "Wirbi"); } } startActivityForResult(intent, REQUEST_CODE_ACTIVITY_SECUNDARAIA); startActivityForResult(intent, REQUEST_CODE_ACTIVITY_SECUNDARAIA);

@Override @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) { if( requestCode == REQUEST_CODE_ACTIVITY_SECUNDARAIA && resultCode == if( requestCode == REQUEST_CODE_ACTIVITY_SECUNDARAIA && resultCode == RESULT_OK ){ RESULT_OK ){ if(data.hasExtra("mensaje")) if(data.hasExtra("mensaje")) Toast.makeText(this, data.getExtras().getString("mensaje"), Toast.makeText(this, data.getExtras().getString("mensaje"), Toast.LENGTH_SHORT).show(); Toast.LENGTH_SHORT).show(); } } } }

Enviando desde ActivitiyPrincipal.class a ActivitySecundaria.class Enviando desde ActivitiyPrincipal.class a ActivitySecundaria.class y recibiendo de ActivitySecudaria.class y recibiendo de ActivitySecudaria.class

public void btnAtrasOnClick(View button){ public void btnAtrasOnClick(View button){ finish(); finish(); } } @Override @Override public void finish() { public void finish() { Intent dataResult = new Intent (this, ActivityPrincipal.class); Intent dataResult = new Intent (this, ActivityPrincipal.class); dataResult.putExtra("mensaje", "De regreso a ActivityPrincipal"); dataResult.putExtra("mensaje", "De regreso a ActivityPrincipal"); setResult(RESULT_OK, dataResult); setResult(RESULT_OK, dataResult); } } super.finish(); super.finish();

Enviando resultado en ActivitySecundaria.class a ActivityPrincipa.class Enviando resultado en ActivitySecundaria.class a ActivityPrincipa.class

Intents Implcitos
public void onClickImplicit(View button){ public void onClickImplicit(View button){ Intent intent = new Intent(Intent.ACTION_DIAL, Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:928-76-34-26")); Uri.parse("tel:928-76-34-26")); startActivity(intent); startActivity(intent); } }

También podría gustarte