Scopri come richiamare un Activity Android in Android Studio: guida passo passo con codice XML e Java per passare da una Activity all’altra utilizzando Intent e il metodo startActivity nelle tue app Android.

richiamare activity android con intent e java

Prima di iniziare, assicurati di avere Android Studio installato sul tuo computer, una conoscenza di base del linguaggio Java, e un progetto Android già creato e configurato. Questi prerequisiti sono essenziali per seguire correttamente tutti i passi della guida.

Cos’è un Activity Android e come richiamarla?

Un’applicazione Android può contenere una o più Activity. Ricorrendo al metodo startActivity(), l’activity principale può lanciare delle sotto-activity utilizzando gli Intent. Un Intent è un oggetto che descrive l’operazione da eseguire. Esistono due tipologie di Intent: gli Intent espliciti, dove si specifica direttamente la classe di destinazione (ad esempio new Intent(MainActivity.this, Pagina1.class)), e gli Intent impliciti, dove si specifica solo l’azione desiderata e il sistema operativo sceglie quale applicazione eseguirla. Ad esempio, un Intent implicito con azione ACTION_VIEW può aprire un URL nel browser predefinito, oppure un Intent con ACTION_CALL può avviare una telefonata. Per approfondire, consulta la documentazione ufficiale di Android sugli Intent.

Passo 1 – Layout XML per richiamare un’Activity

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">

    <TextView
        android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="Start"/>

</LinearLayout>

Passo 2 – Avviare l’Activity con MainActivity.java

Nel file MainActivity.java utilizziamo un Intent per avviare la seconda Activity al click del pulsante:

package com.mycompany.myapp;

import android.app.*;
import android.os.*;
import android.widget.*;
import android.content.Intent;
import android.view.View.*;
import android.view.*;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btn = findViewById(R.id.button1);
        btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                Intent openPage1 = new Intent(MainActivity.this, Pagina1.class);
                startActivity(openPage1);
            }
        });
    }
}

Il codice precedente utilizza findViewById() per ottenere un riferimento al pulsante dal layout XML, identificandolo tramite il suo ID. Su questo riferimento, si aggiunge un OnClickListener che intercetta l’evento di click dell’utente. Nel metodo onClick(), viene creato un nuovo Intent passando come parametri il contesto corrente (MainActivity.this) e la classe dell’Activity di destinazione (Pagina1.class). Infine, startActivity() avvia questa nuova Activity.

Passo 3 – Creare il layout della seconda schermata

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <TextView
        android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="Exit"/>

</LinearLayout>

Passo 4 – Configurare la seconda Activity con Intent

Questa Activity secondaria rappresenta una schermata diversa dell’applicazione. Il suo ruolo fondamentale è consentire all’utente di ritornare alla MainActivity: nella sezione onClick(), viene infatti creato un nuovo Intent che ha come destinazione la MainActivity. Questo crea una navigazione bidirezionale tra le due schermate, permettendo all’utente di spostarsi avanti e indietro all’interno dell’app.

package com.mycompany.myapp;

import android.app.*;
import android.os.*;
import android.widget.*;
import android.content.Intent;
import android.view.View.*;
import android.view.*;

public class Pagina extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pagina);

        Button btn = findViewById(R.id.button1);
        btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                Intent openMainActivity = new Intent(Pagina.this, MainActivity.class);
                startActivity(openMainActivity);
            }
        });
    }
}

Passo 5 – Registrare le schermate nel Manifest

Ogni Activity deve essere dichiarata nel file AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mycompany.myapp">

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <activity android:name=".Pagina1"></activity>

    </application>

</manifest>

Conclusione: Richiamare un’Activity Android con Intent

Guide correlate

In questa guida abbiamo visto come richiamare un Activity Android in Android Studio usando Intent e startActivity. Con un semplice tocco sul pulsante è possibile navigare tra le diverse schermate dell’app. Per approfondire, è possibile implementare il passaggio di dati tra Activity utilizzando putExtra() e getStringExtra(), permettendo così alla MainActivity di inviare informazioni alla Pagina1. È importante comprendere anche come funziona il back stack: quando l’utente preme il tasto Back, Android ritorna all’Activity precedente. Inoltre, gli Intent impliciti permettono di integrarsi con altre applicazioni del sistema: ad esempio, si può lanciare il browser per aprire un URL, la fotocamera per scattare foto, o l’app Contatti per cercare un numero di telefono.