back to top

Gestire le activity tramite gli intent – Guida Sviluppo App Android

Un’applicazione Android può contenere zero o più activity. Quando sono presenti più activity all’interno di un’applicazione solitamente è necessario fornire una funzionalità di navigazione tra di esse e per fare questo in Android si utilizzano i cosiddetti Intent.

Il concetto di Intent è un po’ astratto e per comprendere la sua importanza, come spesso accade, la cosa migliore è quella di provarne il funzionamento con un esempio pratico in cui aggiungiamo una seconda activity ad un progetto e poi navighiamo tra questa e quella principale.

Avviamo dunque Eclipse e creiamo un nuovo progetto denominato "TestIntent", denominando l’activity predefinita come "PrimaActivity"

Nella finestra Package Explorer clicchiamo con il tasto destro del mouse sulla cartella "src" e selezioniamo l’opzione "New – Class"

Denominiamo la classe in "SecondaActivity" e clicchiamo su "Finish", il risultato sarà il seguente

Apriamo il file AndroidManifest.xml e modifichiamolo inserendo i riferimenti a questa seconda activity

Andiamo nella cartella reslayout e creiamo al suo interno una copia del file xml in essa contenuto, denominando il nuovo file "activity_seconda.xml"

Visualizziamo il codice xml di questa seconda activity e modifichiamo solo il testo associato alla TextView predefinita

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Seconda activity" />

Modifichiamo il file SecondaActivity.java che abbiamo creato in precedenza nel modo seguente

Adesso aggiungiamo nel file activity_prima.xml il codice relativo ad un controllo Button da visualizzare appunto nella prima activity e che ci servirà per passare alla seconda

<Button android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Visualizza la seconda activity"
    android:onClick="onClick"/>

Questo codice graficamente corrisponde al pulsante presente nella seguente schermata

A questo punto nella classe PrimaActivity.java dobbiamo solo implementare il metodo onClick in modo che alla pressione del Button verrà visualizzata la seconda activity

import android.content.Intent;
import android.view.View;

...

public void onClick(View view) {
  startActivity(new Intent("android.intent.action.SecondaActivity"));
}

...

Lanciamo adesso l’applicazione. Come possiamo vedere all’avvio verrà visualizzata la prima activity

Cliccando sul pulsante verrà visualizzata la seconda activity

Abbiamo dunque imparato che un’activity è costituita da una file xml relativo all’interfaccia e da una classe che serve a definirne il comportamento. Quindi quando vogliamo aggiungere una nuova activity ad un nostro progetto dobbiamo creare queste due componenti e dichiarare nel file AndroidManifest.xml la nuova activity in modo simile al seguente

<activity
            android:name="com.example.testintent.SecondaActivity"
            android:label="Seconda Activity" >
            <intent-filter>
                <action android:name="android.intent.action.SecondaActivity" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

In questo codice il nome dell’activity è "com.example.testintent.SecondaActivity", la sua etichetta "Seconda Activity".

Molto importante è anche il nome utilizzabile degli intent per richiamare l’activity (android.intent.action.SecondaActivity), perchè in pratica se altre activity vogliono richiamare questa activity devono utilizzare questo nome (tag action). Per quanto riguarda il valore del tag category (android.intent.category.DEFAULT) è necessario impostarlo per far sì che l’activity possa essere richiamata da un’altra activity, come abbiamo visto nel nostro esempio.

In Android le activity possono essere richiamate da altre applicazioni in esecuzione sul dispositivo utilizzando proprio i valori della sezione intent-filter. Questo è uno dei concetti più importanti in Android perché consente facilmente ad un’applicazione di richiamarne un’altra.

Pubblicitร 

In questa guida...