Es mostren els missatges amb l'etiqueta de comentaris Intents. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris Intents. Mostrar tots els missatges

dijous, 25 de juliol del 2013

Us d'intents per iniciar activitats



De Intents en tenim de dos tipus: explícits i implícits.

  • Cridar mètodes implícits sense retorn de resultat
 Cal declarar l'activitat al fitxer AndroidManifest.xml

        <activity
            android:name="com.lina.validar.ActivitatSegona"
            android:label="@string/title_activity_activitat_segona" >
        </activity>

Per obrir una nova activitat, que no retorna resultats a la primera (codi en la primera activitat)

Intent intencio= new Intent(getApplicationContext(), ActivitatSegona.class);

Per passar arguments entre activitats (codi en la primera activitat)

intencio.putExtra("NOM", nom);
startActivity(intencio);

Per recollir els arguments en la segona activitat, passats per la primera

String nom = getIntent().getStringExtra("NOM");
 
  • Cridar mètodes implícits amb retorn de resultat
Es declaren igual però es cridem amb

startActivityForResult(intencio, codi);

On codi pot ser qualsevol número superior a 0 i que serveix per identificar el intent.

Després l'activitat segona li retorna la informació a l'activitat primera amb

Intent intent = new Intent();
intent.putExtra( "tornar" , 1);
setResult( RESULT_OK ,intent);
finish();

I l'activitat primera per recollir el resultat:

@Override
protected void onActivityResult ( int requestCode, int resultCode, Intent data){
super .onActivityResult(requestCode, resultCode, data);
if (requestCode == 10 && resultCode == RESULT_OK ){
int valorObtenido = data.getIntExtra("devolver", 0);
//el nostre codi
       }
}

  • Cridar mètodes explícits
Per exemple:

startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:933333333")));

La classe Intent defineix una sèrie d'accions predeterminades ( es poden consultar http://developer.android.com/guide/components/intents-filters.html). En aquest cas cridem a l'acció ACTION_CALL que inicia una trucada de telèfon