En aquest tema, aprendrem com gestionar l'entrada de l'usuari en una aplicació Android. Això inclou la captura de dades des de components de la interfície d'usuari com EditText, la gestió d'esdeveniments de clic en botons i la validació de les dades introduïdes per l'usuari.
Objectius
- Comprendre com capturar l'entrada de l'usuari des de components de la interfície d'usuari.
- Aprendre a gestionar esdeveniments de clic en botons.
- Implementar la validació de dades d'entrada.
Components Clau
- EditText: Un component de la interfície d'usuari que permet a l'usuari introduir text.
- Button: Un component de la interfície d'usuari que permet a l'usuari iniciar una acció.
- TextView: Un component de la interfície d'usuari que mostra text a la pantalla.
Captura de l'Entrada de l'Usuari
Exemple Pràctic
- Creació del Layout XML
<!-- res/layout/activity_main.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"> <EditText android:id="@+id/editTextUserInput" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Introdueix el teu nom" /> <Button android:id="@+id/buttonSubmit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enviar" /> <TextView android:id="@+id/textViewResult" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:paddingTop="16dp" /> </LinearLayout>
- Gestió de l'Entrada en el Codi Java/Kotlin
// src/main/java/com/example/myapplication/MainActivity.kt package com.example.myapplication import android.os.Bundle import android.widget.Button import android.widget.EditText import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val editTextUserInput = findViewById<EditText>(R.id.editTextUserInput) val buttonSubmit = findViewById<Button>(R.id.buttonSubmit) val textViewResult = findViewById<TextView>(R.id.textViewResult) buttonSubmit.setOnClickListener { val userInput = editTextUserInput.text.toString() textViewResult.text = "Hola, $userInput!" } } }
Explicació del Codi
- EditText: Utilitzem
findViewById
per obtenir una referència al componentEditText
i capturar el text introduït per l'usuari ambeditTextUserInput.text.toString()
. - Button: Configurem un
OnClickListener
per al botó que captura l'entrada de l'usuari quan es fa clic. - TextView: Actualitzem el text del
TextView
per mostrar un missatge personalitzat amb l'entrada de l'usuari.
Validació de Dades d'Entrada
Exemple de Validació
buttonSubmit.setOnClickListener { val userInput = editTextUserInput.text.toString() if (userInput.isEmpty()) { editTextUserInput.error = "El nom no pot estar buit" } else { textViewResult.text = "Hola, $userInput!" } }
Explicació del Codi
- Validació: Comprovem si l'entrada de l'usuari està buida. Si ho està, mostrem un missatge d'error utilitzant
editTextUserInput.error
.
Exercicis Pràctics
Exercici 1: Captura de l'Entrada de l'Usuari
Crea una aplicació que permeti a l'usuari introduir el seu correu electrònic i mostri un missatge de benvinguda amb el correu introduït.
Exercici 2: Validació de l'Entrada de l'Usuari
Amplia l'exercici anterior per validar que el camp de correu electrònic no estigui buit i que contingui un símbol '@'.
Solucions
Exercici 1
<!-- res/layout/activity_main.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"> <EditText android:id="@+id/editTextEmail" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Introdueix el teu correu electrònic" /> <Button android:id="@+id/buttonSubmit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enviar" /> <TextView android:id="@+id/textViewResult" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:paddingTop="16dp" /> </LinearLayout>
// src/main/java/com/example/myapplication/MainActivity.kt package com.example.myapplication import android.os.Bundle import android.widget.Button import android.widget.EditText import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val editTextEmail = findViewById<EditText>(R.id.editTextEmail) val buttonSubmit = findViewById<Button>(R.id.buttonSubmit) val textViewResult = findViewById<TextView>(R.id.textViewResult) buttonSubmit.setOnClickListener { val email = editTextEmail.text.toString() textViewResult.text = "Benvingut, $email!" } } }
Exercici 2
buttonSubmit.setOnClickListener { val email = editTextEmail.text.toString() if (email.isEmpty()) { editTextEmail.error = "El correu electrònic no pot estar buit" } else if (!email.contains("@")) { editTextEmail.error = "El correu electrònic ha de contenir un '@'" } else { textViewResult.text = "Benvingut, $email!" } }
Resum
En aquesta secció, hem après com capturar l'entrada de l'usuari utilitzant components de la interfície d'usuari com EditText
i Button
. També hem vist com gestionar esdeveniments de clic i com validar les dades d'entrada per assegurar-nos que compleixen certs criteris. Aquestes habilitats són fonamentals per crear aplicacions Android interactives i robustes.
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