IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Mettre en place des sections dans une ListView


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Par défaut Mettre en place des sections dans une ListView
    Bonjour,

    Tout est dans le titre.

    Je récupère des données grâce à Json. Sur chaque entrée se trouve un nom de ville et un titre. Exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    {"entry":[
     
                   {"titre" : "Mon titre1" , "ville" : "Ville1"},
                   {"titre" : "Mon titre2" , "ville" : "Ville3"},
                   {"titre" : "Mon titre3" , "ville" : "Ville2"},
                   {"titre" : "Mon titre4" , "ville" : "Ville1"},
                   {"titre" : "Mon titre5" , "ville" : "Ville2"},
                   {"titre" : "Mon titre6" , "ville" : "Ville1"}
     
    ]}
    J'aimerais mettre en places des sections (Ville 1, ville 2 , ville 3) dans un ListView avec les titres correspondant pour chaque sections.

    Comment faire ?
    Merci.

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Exemple d'implémentation:

    D'abord coté "POJO":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class VilleData {
        ....
     
        public static VilleData  fromJSON(JSONObject obj) throws JSONException {
           VilleData ret = new VilleData ();
           ret.setTitle(obj.getString("titre"));
           ret.setVille(obj.getString("ville"));
           return ret;
        }
    }
    Ensuite coté application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    class Activity ...
    {
     
     
        public void onJSONResult(JSONObject response)
        {
            ArrayList<VilleData> datalist = new Arraylist<VilleData>();
            try {
               JSONArray entries = response.getJSONArray("entry");
               for (int i = 0; (i < entries.length()); ++i) {
                   JSONObject entry = entries.getJSONObject(i);
                   VilleData data = VilleData.fromJSON(entry);
                   datalist.add(data);
               }
               ArrayAdapter<VilleData> adapter = new ArrayAdapter<VilleData>(..,datalist);
               ListView lv = ...;
               lv.setAdapter(adapter);
            } catch (Exception ex) {
               Toast......
            }
        }
    }
    Restera là tâche de récupération du JSON qui à la fin appelera onJSONResult()
    (dans le thread UI)

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Par défaut
    Merci de votre réponse mais je ne vois pas à quel moment il ya la gestion des "sections". Du genre :


  4. #4
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Par défaut
    http://code.google.com/p/android-sec...tActivity.java

    J'ai testé votre exemple , celà marche avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    SectionListItem[] exampleArray = { 
        new SectionListItem("Titre1", "VilleA"), //
        new SectionListItem("Titre2", "VilleA"), //
        new SectionListItem("Titre3", "VilleB"), //
         new SectionListItem("Titre4", "VilleB"), //
        };
    Mais lorsque je fais ceci, pour tester, J'ai un NullPointerException sur mon exampleArray[i] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    for (int i = 0; i < earthquakes.length(); i++) {
     
    JSONObject e = earthquakes.getJSONObject(i);					
    exampleArray[i] =   new SectionListItem(e.getString(KEY_TITRE),e.getString(KEY_VILLE));
    					}
    Ma class ListItem

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    /**
     * Item definition including the section.
     */
    public class SectionListItem {
        public Object item;
        public String section;
     
        public SectionListItem(final Object item, final String section) {
            super();
            this.item = item;
            this.section = section;
        }
     
        @Override
        public String toString() {
            return item.toString();
        }
     
    }

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    exampleArray n'a donc pas été initialisé à une array....

Discussions similaires

  1. Insérer des données dans une ListView
    Par Vincinho dans le forum VB.NET
    Réponses: 3
    Dernier message: 18/05/2010, 17h08
  2. Chargement des images dans une ListView
    Par loudo dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 09/05/2010, 22h03
  3. Afficher des images dans une listView de manière asynchrone
    Par badaboo dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 23/02/2010, 09h47
  4. Mettre en place des droits sur une vue différents de ceux de la table-source ?
    Par Antoun dans le forum Administration et Installation
    Réponses: 14
    Dernier message: 15/02/2010, 14h13
  5. Afficher des informations dans une ListView
    Par revero275 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/04/2007, 21h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo