1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| package com.tutomobile.android.listView;
import java.util.ArrayList;
import java.util.HashMap;
import com.tutomobile.android.listView.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
public class Tutoriel5_Android extends Activity {
private ListView maListViewPerso;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Récupération de la listview créée dans le fichier main.xml
maListViewPerso = (ListView) findViewById(R.id.listviewperso);
//Création de la ArrayList qui nous permettra de remplire la listView
ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();
//On déclare la HashMap qui contiendra les informations pour un item
HashMap<String, String> map;
//Création d'une HashMap pour insérer les informations du premier item de notre listView
map = new HashMap<String, String>();
//on insère un élément titre que l'on récupérera dans le textView titre créé dans le fichier affichageitem.xml
map.put("titre", "Word");
//on insère un élément description que l'on récupérera dans le textView description créé dans le fichier affichageitem.xml
map.put("description", "Editeur de texte");
//on insère la référence à l'image (convertit en String car normalement c'est un int) que l'on récupérera dans l'imageView créé dans le fichier affichageitem.xml
map.put("img", String.valueOf(R.drawable.word));
//enfin on ajoute cette hashMap dans la arrayList
listItem.add(map);
//On refait la manip plusieurs fois avec des données différentes pour former les items de notre ListView
map = new HashMap<String, String>();
map.put("titre", "Excel");
map.put("description", "Tableur");
map.put("img", String.valueOf(R.drawable.excel));
listItem.add(map);
map = new HashMap<String, String>();
map.put("titre", "Power Point");
map.put("description", "Logiciel de présentation");
map.put("img", String.valueOf(R.drawable.powerpoint));
listItem.add(map);
map = new HashMap<String, String>();
map.put("titre", "Outlook");
map.put("description", "Client de courrier électronique");
map.put("img", String.valueOf(R.drawable.outlook));
listItem.add(map);
//Création d'un SimpleAdapter qui se chargera de mettre les items présent dans notre list (listItem) dans la vue affichageitem
SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.affichageitem,
new String[] {"img", "titre", "description"}, new int[] {R.id.img, R.id.titre, R.id.description});
//On attribut à notre listView l'adapter que l'on vient de créer
maListViewPerso.setAdapter(mSchedule);
//Enfin on met un écouteur d'évènement sur notre listView
maListViewPerso.setOnItemClickListener(new OnItemClickListener() {
@Override
@SuppressWarnings("unchecked")
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
//on récupère la HashMap contenant les infos de notre item (titre, description, img)
HashMap<String, String> map = (HashMap<String, String>) maListViewPerso.getItemAtPosition(position);
//on créer une boite de dialogue
AlertDialog.Builder adb = new AlertDialog.Builder(Tutoriel5_Android.this);
//on attribut un titre à notre boite de dialogue
adb.setTitle("Sélection Item");
//on insère un message à notre boite de dialogue, et ici on affiche le titre de l'item cliqué
adb.setMessage("Votre choix : "+map.get("titre"));
//on indique que l'on veut le bouton ok à notre boite de dialogue
adb.setPositiveButton("Ok", null);
//on affiche la boite de dialogue
adb.show();
}
});
}
} |
Partager