TP Android – ListView Simple
Dans ce TP, vous allez afficher une liste simple de villes marocaines dans une ListView à
l'aide d'un ArrayAdapter. C'est un exercice parfait pour comprendre le principe des listes et
des adaptateurs en Android.
🎯 Objectifs du TP
• Comprendre le rôle d'une ListView
• Utiliser un ArrayAdapter pour afficher des données simples
• Lier des données à une vue
• Manipuler un layout XML + une Activity Java
1 Étape 1 – Créer le layout XML (activity_main.xml)
1️⃣
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:orientation="vertical">
<ListView
android:id="@+id/listViewVilles"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
2️⃣Étape 2 – Ajouter le code Java ([Link])
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);
// 1. Récupération de la ListView
ListView listView = findViewById([Link]);
// 2. Données à afficher
String[] villes = {"Rabat", "Casablanca", "Agadir", "Marrakech", "Tanger", "Safi"};
// 3. Création de l'ArrayAdapter
ArrayAdapter<String> adapter = new ArrayAdapter<>(
this,
[Link].simple_list_item_1,
villes
);
// 4. Connexion de l'adapter à la ListView
[Link](adapter);
}
}
3️⃣Étape 3 – (Optionnel) Ajouter un clic sur un élément
[Link]((adapterView, view, position, id) -> {
String ville = villes[position];
[Link](this, "Vous avez cliqué : " + ville, Toast.LENGTH_SHORT).show();
});
📝 Résultat attendu
L'application affiche une liste simple de villes. Lorsque vous cliquez sur une ville (si vous
avez ajouté l'option), un message apparaît.
📌 Points à retenir
• ListView ne peut afficher que des listes verticales
• ArrayAdapter est parfait pour des données simples
• RecyclerView est recommandé pour des listes complexes ou de grande taille