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 :

Problème remplissage listView avec 2 JSON


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web et Mobile
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web et Mobile

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Problème remplissage listView avec 2 JSON
    Bonjour,

    Je souhaiterai mettre dans une liste 2 tableaux JSON, malheureusement et je ne comprend pas, l'application récupère bien les 2 tableaux (j'arrive à afficher dans le logcat son contenu) mais çà m'affiche une liste éronné.

    Stats.class :
    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
    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
    ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
    		Log.i("URL", "http://quiz.emergence-wm.com/"+cryptage+"/getStats.php?idClient="+idClient+"&modeJeu="+modeJeu);
    		JSONObject json = DBServer.getJSONfromURL("http://quiz.emergence-wm.com/"+cryptage+"/getStats.php?idClient="+idClient+"&modeJeu="+modeJeu);
     
    		try{
    			JSONArray  stats  = json.getJSONArray("stats");
            	map = new HashMap<String, String>();
            	JSONObject f = stats.getJSONObject(0);
            	Log.i("stats", f.getString("points"));
            	map.put("_id", ""+f.getString("_id"));
            	map.put("titrePack", "" + f.getString("titrePacks"));
            	map.put("dateStats", "" +  f.getString("dateStats"));
            	map.put("points", "" +  f.getString("points"));
            	map.put("nbRepJuste", "" + f.getString("nbRepJuste"));
            	mylist.add(map); 
    		}
    		catch(JSONException e) {
                Log.e("log_tag", "Error parsing data "+e.toString());
            }
     
    		JSONObject json2 = DBServer.getJSONfromURL("http://quiz.emergence-wm.com/"+cryptage+"/getStats2.php?idClient="+idClient+"&modeJeu="+modeJeu);
     
            try{
            	Log.i("Liste Stats", "On essaye");
            	Log.i("Forum", json.get("stats").getClass().getName());
     
                JSONArray  statsM = json2.getJSONArray("statsM");
                for(int i=0;i<statsM.length();i++){
                	JSONObject e = statsM.getJSONObject(i);
                	Log.i("stats", e.getString("points"));
                	map.put("_id", ""+e.getString("_id"));
                	map.put("titrePack", "" + e.getString("titrePacks"));
                	map.put("dateStats", "" +  e.getString("dateStats"));
                	map.put("points", "" +  e.getString("points"));
                	map.put("nbRepJuste", "" + e.getString("nbRepJuste"));
                	mylist.add(map); 
            	} 
            }
            catch(JSONException e) {
                Log.e("log_tag", "Error parsing data "+e.toString());
            }
     
     
            final ListAdapter adapter = new SimpleAdapter(
            			this,
            			mylist,
            			R.layout.liststats,
    					new String[] { "titrePack", "dateStats", "points", "nbRepJuste" },
        				new int[] { R.id.titrePack, R.id.dateStats, R.id.points, R.id.nbRepJuste });
        	setListAdapter(adapter);
    getStats.php donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"stats" : [{"_id":"19","titrePacks":"Natation","dateStats":"20\/12\/2011","points":"20510","nbRepJuste":"33"}]}
    getStats2.php donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"statsM" : [{"_id":"20","titrePacks":"Natation","dateStats":"19\/12\/2011","points":"1000000","nbRepJuste":"20"}]}
    Et mon logCat :
    modeJeu : clm30
    URL : http://quiz.emergence-wm.com/*****/g...&modeJeu=clm30
    stats : 20510
    ListeStats: On essaye
    Forum : org.json.JSONArray
    stats : 1000000
    [/CODE]

    Hors dans mon application il m'affiche 2 scores, c'est à dire:
    1000000
    1000000
    Au lieu de :
    20510
    1000000

    Une idée du pourquoi du comment ?

  2. #2
    Membre actif Avatar de chpil
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 143
    Points : 212
    Points
    212
    Par défaut
    Tu insères dans ta liste la même instance de la Map, tu te retrouves donc avec une liste qui contient n fois la même Map, avec les dernières valeurs issues du dernier élément du second JSON.
    Il te suffit d'instancier une nouvelle HashMap à chaque pas d'itération du traitement de ton second JSON
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                for(int i=0;i<statsM.length();i++){
                    map = new HashMap();
                	JSONObject e = statsM.getJSONObject(i);
                    ...

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web et Mobile
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web et Mobile

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Eh ben voilà, parfois il suffit de pas grand chose ^^

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème remplissage ListView
    Par 901coco dans le forum Débuter
    Réponses: 0
    Dernier message: 22/03/2013, 09h52
  2. Problème de ListView avec une ArrayList d'objets
    Par zouky dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 24/08/2012, 00h40
  3. Problème remplissage hauteur avec une ListView et style des cellules
    Par Takumi dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 20/07/2010, 11h42
  4. Remplissage ListView avec 2 colonnes
    Par dark_botsay dans le forum Windows Forms
    Réponses: 0
    Dernier message: 05/07/2010, 22h34
  5. Remplissage ListView avec un Dataset
    Par car0 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/01/2007, 22h44

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