Objectius del Tema
En aquest tema, aprendràs:
- Què és una activitat en Android.
- Com crear una activitat.
- El cicle de vida d'una activitat.
- Com comunicar-se entre activitats.
Què és una Activitat?
Una activitat és una de les components fonamentals d'una aplicació Android. Representa una única pantalla amb una interfície d'usuari. Per exemple, una aplicació de correu electrònic pot tenir una activitat per mostrar una llista de correus, una altra per redactar un nou correu, etc.
Creació d'una Activitat
Pas 1: Crear una Nova Activitat
- Obre Android Studio.
- Crea un nou projecte o obre un projecte existent.
- Afegeix una nova activitat:
- Fes clic amb el botó dret a la carpeta
app
dins del panell del projecte. - Selecciona
New
>Activity
>Empty Activity
. - Assigna un nom a la teva activitat (per exemple,
SecondActivity
). - Fes clic a
Finish
.
- Fes clic amb el botó dret a la carpeta
Pas 2: Modificar el Fitxer XML de la Interfície d'Usuari
El fitxer XML associat a la nova activitat es troba a res/layout/activity_second.xml
. Aquí pots definir la interfície d'usuari de la teva activitat.
<!-- res/layout/activity_second.xml --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello from Second Activity!" /> </LinearLayout>
Pas 3: Modificar la Classe de l'Activitat
El fitxer de codi associat a la nova activitat es troba a java/com/teu/paquet/SecondActivity.java
. Aquí pots definir el comportament de la teva activitat.
// java/com/teu/paquet/SecondActivity.java package com.teu.paquet; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; public class SecondActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); } }
El Cicle de Vida d'una Activitat
Les activitats en Android tenen un cicle de vida ben definit que consta de diversos mètodes de devolució de trucada. Els més importants són:
- onCreate(): Cridat quan l'activitat es crea per primera vegada.
- onStart(): Cridat quan l'activitat es fa visible per a l'usuari.
- onResume(): Cridat quan l'activitat comença a interactuar amb l'usuari.
- onPause(): Cridat quan l'activitat deixa d'interactuar amb l'usuari.
- onStop(): Cridat quan l'activitat ja no és visible per a l'usuari.
- onDestroy(): Cridat abans que l'activitat sigui destruïda.
Diagrama del Cicle de Vida
Mètode | Descripció |
---|---|
onCreate() |
Inicialitza l'activitat. Configura la interfície d'usuari. |
onStart() |
L'activitat es fa visible per a l'usuari. |
onResume() |
L'activitat comença a interactuar amb l'usuari. |
onPause() |
L'activitat deixa d'interactuar amb l'usuari. |
onStop() |
L'activitat ja no és visible per a l'usuari. |
onDestroy() |
L'activitat està a punt de ser destruïda. |
Exemple de Codi
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Log.d("SecondActivity", "onCreate called"); } @Override protected void onStart() { super.onStart(); Log.d("SecondActivity", "onStart called"); } @Override protected void onResume() { super.onResume(); Log.d("SecondActivity", "onResume called"); } @Override protected void onPause() { super.onPause(); Log.d("SecondActivity", "onPause called"); } @Override protected void onStop() { super.onStop(); Log.d("SecondActivity", "onStop called"); } @Override protected void onDestroy() { super.onDestroy(); Log.d("SecondActivity", "onDestroy called"); }
Comunicació entre Activitats
Pas 1: Crear un Intent
Per iniciar una nova activitat, utilitzem un Intent
.
Pas 2: Passar Dades entre Activitats
Podem passar dades entre activitats utilitzant putExtra
i getIntent
.
Enviar Dades:
Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("EXTRA_MESSAGE", "Hello from MainActivity!"); startActivity(intent);
Rebre Dades:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Intent intent = getIntent(); String message = intent.getStringExtra("EXTRA_MESSAGE"); TextView textView = findViewById(R.id.textView); textView.setText(message); }
Exercicis Pràctics
Exercici 1: Crear una Nova Activitat
- Crea una nova activitat anomenada
ThirdActivity
. - Afegeix un
TextView
al fitxer XML de la interfície d'usuari deThirdActivity
. - Modifica la classe
ThirdActivity
per mostrar un missatge de benvinguda.
Exercici 2: Passar Dades entre Activitats
- Modifica
MainActivity
per enviar un missatge aThirdActivity
utilitzant unIntent
. - Modifica
ThirdActivity
per rebre i mostrar el missatge enviat des deMainActivity
.
Solucions
Solució a l'Exercici 1
Fitxer XML:
<!-- res/layout/activity_third.xml --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Welcome to Third Activity!" /> </LinearLayout>
Classe Java:
// java/com/teu/paquet/ThirdActivity.java package com.teu.paquet; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; public class ThirdActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_third); } }
Solució a l'Exercici 2
Enviar Dades des de MainActivity:
Intent intent = new Intent(MainActivity.this, ThirdActivity.class); intent.putExtra("EXTRA_MESSAGE", "Hello from MainActivity!"); startActivity(intent);
Rebre Dades a ThirdActivity:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_third); Intent intent = getIntent(); String message = intent.getStringExtra("EXTRA_MESSAGE"); TextView textView = findViewById(R.id.textView); textView.setText(message); }
Conclusió
En aquest tema, has après què és una activitat, com crear-ne una, el cicle de vida d'una activitat i com comunicar-se entre activitats. Aquestes habilitats són fonamentals per al desenvolupament d'aplicacions Android. En el proper tema, explorarem com executar la teva aplicació en un emulador.
Curs d'Android Studio
Mòdul 1: Introducció a Android Studio
- Introducció a Android Studio
- Configuració d'Android Studio
- Comprensió de la Interfície d'Android Studio
- Creació del teu Primer Projecte Android
Mòdul 2: Desenvolupament Bàsic d'Android
- Comprensió de l'Estructura del Projecte Android
- Introducció als Dissenys XML
- Components Bàsics de la Interfície d'Usuari
- Introducció a les Activitats
- Executar la teva Aplicació en un Emulador
Mòdul 3: Desenvolupament Intermedi d'Android
- Introducció als Intents
- Treballar amb Fragments
- Gestió de l'Entrada de l'Usuari
- Ús de RecyclerView
- Xarxes en Android
Mòdul 4: Desenvolupament Avançat d'Android
- Persistència de Dades amb SQLite
- Ús de Room per a la Gestió de Bases de Dades
- Components Avançats de la Interfície d'Usuari
- Vistes Personalitzades i Canvas
- Treballar amb Tasques en Segon Pla
Mòdul 5: Desenvolupament Professional d'Android
- Implementació de l'Arquitectura MVVM
- Injecció de Dependències amb Dagger
- Proves Unitàries i Proves de la Interfície d'Usuari
- Publicació de la teva Aplicació a Google Play
- Optimització del Rendiment