back to top

Gestione delle activity tramite gli intent

Un’applicazione Android può contenere una o più activity. Quando sono presenti più activity solitamente è necessario fornire anche una funzionalità di navigazione tra di esse e per fare questo 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 al progetto della lezione precedente e poi navighiamo tra questa e quella principale.

Apriamo l’applicazione MyHelloWorld in Android Studio, selezioniamo il nodo java e clicchiamo con il tasto destro del mouse scegliendo l’opzione per l’aggiunta di una nuova activity vuota (Blank Activity)

Denominiamo la classe SecondActivity e clicchiamo su Finish

Il risultato sarà il seguente

Aprendo il file AndroidManifest.xml possiamo vedere che sono stati automaticamente inseriti i riferimenti a questa seconda activity

Analogamente nella cartella reslayout troviamo un nuovo file denominato activity_second.xml

Visualizziamo il codice xml di questa seconda activity e inseriamo lo stesso codice della prima activity, modificando solo il valore tools: context impostandolo su SecondActivity e la stringa visualizzata nella TextView

<?xml version="1.0" encoding="utf-8"?>
<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"
    android:paddingBottom="16dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp"
    tools:context="com.example.test.myhelloworld.SecondActivity">

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

</RelativeLayout>

Adesso aggiungiamo nel file activity_main.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"
    android:layout_below="@+id/textView"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="56dp" />

Questo codice graficamente corrisponde al pulsante presente nella seguente schermata

A questo punto nella classe MainActivity.java dobbiamo solo implementare il metodo onClick in modo che alla pressione del Button verrà visualizzata la seconda activity e per farlo utilizziamo la classe Intent

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

...

public void onClick(View view) {
    startActivity(new Intent(MainActivity.this, SecondActivity.class));    
}

...

Lanciamo adesso l’applicazione sull’emulatore e all’avvio verrà visualizzata la prima activity

Cliccando sul pulsante verrà visualizzata la seconda activity

Abbiamo dunque appreso 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 realtà fa tutto automaticamente Android Studio ma è giusto comprenderlo).

Le activity possono essere richiamate da altre applicazioni in esecuzione sul dispositivo e questo è uno dei concetti più importanti in Android perché consente facilmente ad un’applicazione di richiamarne un’altra.

Gli intent costituiscono fondamentalmente un sistema per fare questo ma anche per trasferire dati tra diverse activity sotto forma di coppie chiave-valore.

Pubblicitร