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 :

Erreur de listView avec lecture de JSON


Sujet :

Composants graphiques Android

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Par défaut Erreur de listView avec lecture de JSON
    Bonjour,

    Alors je vous explique j'ai une fonction qui me permet de récuperer des informations d'un web service en JSON, jusqu'a la pas de soucis, après mon but est de mettre ses informations dans une listview avec un layout modifier. La est le problème avec la boucle ci-dessous il m'affiche bien toute mes entrées mais ce sont toujours les même .... Je pense que cela vient de la position mais je ne vois pas comment résoudre le problème si vous avez une idée.

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
     public void retourLivraison(StringBuilder sb) {
     
            //appel du json + remplissage liste
            JsonElement json = new JsonParser().parse(sb.toString());
            JsonObject jobj = json.getAsJsonObject();
            ListView listLiv = (ListView) findViewById(R.id.list_liv);
            JsonObject joLivs = jobj.getAsJsonObject("livraisons");
            final JsonArray jsonArray = joLivs.getAsJsonArray("livraison");
            for (int i = 0; i < jsonArray.size(); i++) {
                final JsonObject object1 = (JsonObject) jsonArray.get(i);
                //String test = object1.get("nom_client").toString();
                //alertmsg("Test", "test: " + test);
     
     
                class CustomAdapter extends BaseAdapter {
     
                    @Override
                    public int getCount() {
                        return jsonArray.size();
                    }
     
                    @Override
                    public Object getItem(int position) {
                        return null;
                    }
     
                    @Override
                    public long getItemId(int position) {
                        return 0;
                    }
     
                    @Override
                    public View getView(int position, View convertView, ViewGroup parent) {
                        convertView = getLayoutInflater().inflate(R.layout.layout_livraison, null);
     
                        ImageView statut = (ImageView) convertView.findViewById(R.id.statut);
                        TextView client = (TextView) convertView.findViewById(R.id.client);
                        TextView adresse = (TextView) convertView.findViewById(R.id.adresse);
                        TextView ville = (TextView) convertView.findViewById(R.id.ville);
     
                        if(object1.get("statut_livraison").toString() == "1")
                        {
                            statut.setImageResource(R.drawable.circle_green);
                        }else
                        {
                            statut.setImageResource(R.drawable.circle_red);
                        }
     
                        client.setText(object1.get("nom_client").toString());
                        adresse.setText(object1.get("adresse1_livraison").toString().concat(object1.get("adresse2_livraison").toString()));
                        ville.setText(object1.get("cp_livraison").toString().concat(object1.get("ville_livraison").toString()));
     
                        return convertView;
                    }
     
     
                }
                alertmsg("statut", "staut: " +object1.get("nom_client").toString());
                CustomAdapter customAdapter = new CustomAdapter();
                listLiv.setAdapter(customAdapter);
     
     
            }
     
     
        }
    Merci pour votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Par défaut
    Petit up, j'ai passer toute l'après_midi sur une solution mais rien ne marche .... Help pls

  3. #3
    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
    Par défaut
    Quelle est l'URL du webservice ?
    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

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Par défaut
    J'ai bien avancé sur le sujet, j'ai trouver une solution en passant par un tableau de string normal, par contre est-il possible d'enlever les guillemets a la sortie d'un json ? Car ici dans ma liste view il m'affiche avec des """ monString "

    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
    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
     public void retourLivraison(StringBuilder sb) {
     
            //appel du json + remplissage liste
            JsonElement json = new JsonParser().parse(sb.toString());
            JsonObject jobj = json.getAsJsonObject();
            ListView listLiv = (ListView) findViewById(R.id.list_liv);
            JsonObject joLivs = jobj.getAsJsonObject("livraisons");
            final JsonArray jsonArray = joLivs.getAsJsonArray("livraison");
            String[] client2 = new String[jsonArray.size()];
            String[] adresse2 = new String[jsonArray.size()];
            String[] ville2 = new String[jsonArray.size()];
            final String[] image2 = new String[jsonArray.size()];
            for (int i = 0; i < jsonArray.size(); i++) {
                final JsonObject object1 = (JsonObject) jsonArray.get(i);
                //String test = object1.get("nom_client").toString();
                //alertmsg("Test", "test: " + test);
     
                String clientobj = (object1.get("nom_client").toString()).trim();
                client2 [i]= clientobj;
                String adresseobj = (object1.get("adresse1_livraison").toString().concat(object1.get("adresse2_livraison").toString()).trim());
                adresse2 [i]= adresseobj;
                String villeobj = (object1.get("cp_livraison").toString().concat(object1.get("ville_livraison").toString()).trim());
                ville2 [i]= villeobj;
                String imageobj = object1.get("statut_livraison").toString().trim();
                image2 [i] = imageobj;
     
                //Test qui boucle parfaitement
                alertmsg("statut", "staut: " +object1.get("nom_client").toString());
     
     
            }
     
            final String[] finalClient = client2;
            final String[] finalLivraison = adresse2;
            final String[] finalVille = ville2;
            final String[] finalImage = image2;
            class CustomAdapter extends BaseAdapter {
     
                @Override
                public int getCount() {
                    return jsonArray.size();
                }
     
                @Override
                public Object getItem(int position) {
                    return null;
                }
     
                @Override
                public long getItemId(int position) {
                    return 0;
                }
     
                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                    convertView = getLayoutInflater().inflate(R.layout.layout_livraison, null);
     
                    ImageView statut = (ImageView) convertView.findViewById(R.id.statut);
                    TextView client = (TextView) convertView.findViewById(R.id.client);
                    TextView adresse = (TextView) convertView.findViewById(R.id.adresse);
                    TextView ville = (TextView) convertView.findViewById(R.id.ville);
     
                    if(finalImage[position] == "1")
                    {
                        statut.setImageResource(R.drawable.circle_green);
                    }else
                    {
                        statut.setImageResource(R.drawable.circle_red);
                    }
     
                    client.setText(finalClient[position]);
     
                    adresse.setText(finalLivraison[position]);
                    ville.setText(finalVille[position]);
     
                    return convertView;
                }
     
     
            }
            CustomAdapter customAdapter = new CustomAdapter();
            listLiv.setAdapter(customAdapter);
     
     
        }

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Quelle est l'URL du webservice ?

    Le webservice est sur un host en privé impossible de le partager à l'extérieur, mais celui-ci marche très bien

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Par défaut
    Je reviens vers vous j'ai donc réussi a résoudre mon problème de tableau, maintenant, je voulais savoir est-il possible d'enlever les guillemets dan une clé JSON ?

    Merci !

  7. #7
    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
    Par défaut
    Utilises object1.getString("nom_client") au lieu de object1.get("nom_client").toString()
    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

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Utilises object1.getString("nom_client") au lieu de object1.get("nom_client").toString()
    Merci de ta réponse malheureusement je n'utilise pas la même source que toi au niveau json, je ne peux que utiliser le getAsString

  9. #9
    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
    Par défaut
    Je ne comprends pas bien. Tu utilises bien JSONObject non ?
    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

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Je ne comprends pas bien. Tu utilises bien JSONObject non ?
    J'utilise le Json de javascript et non le JSON
    import com.google.gson.JsonArray;
    import com.google.gson.JsonElement;
    import com.google.gson.JsonObject;
    import com.google.gson.JsonParser;

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 84
    Par défaut
    Problème résolu en passant par un tableau de int directement; un peu logique ^^

    Code final :

    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
    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
      public void retourLivraison(StringBuilder sb) {
     
            //appel du json + remplissage liste
            JsonElement json = new JsonParser().parse(sb.toString());
            JsonObject jobj = json.getAsJsonObject();
            ListView listLiv = (ListView) findViewById(R.id.list_liv);
            JsonObject joLivs = jobj.getAsJsonObject("livraisons");
            final JsonArray jsonArray = joLivs.getAsJsonArray("livraison");
            String[] client2 = new String[jsonArray.size()];
            String[] adresse2 = new String[jsonArray.size()];
            String[] ville2 = new String[jsonArray.size()];
            final int[] image2 = new int[jsonArray.size()];
            for (int i = 0; i < jsonArray.size(); i++) {
                final JsonObject object1 = (JsonObject) jsonArray.get(i);
                //String test = object1.get("nom_client").toString();
                //alertmsg("Test", "test: " + test);
     
                String clientobj = (object1.get("nom_client").toString()).trim();
                client2 [i]= clientobj;
                String adresseobj = (object1.get("adresse1_livraison").toString().concat(object1.get("adresse2_livraison").toString()).trim());
                adresse2 [i]= adresseobj;
                String villeobj = (object1.get("cp_livraison").toString().concat(object1.get("ville_livraison").toString()).trim());
                ville2 [i]= villeobj;
                int imageobj = Integer.parseInt((object1.get("statut_livraison").getAsString()));
                image2 [i] = imageobj;
     
                //Test qui boucle parfaitement
                alertmsg("statut", "staut: " +object1.get("statut_livraison").getAsString());
     
     
            }
     
            final String[] finalClient = client2;
            final String[] finalLivraison = adresse2;
            final String[] finalVille = ville2;
            final int[] finalImage = image2;
            class CustomAdapter extends BaseAdapter {
     
                @Override
                public int getCount() {
                    return jsonArray.size();
                }
     
                @Override
                public Object getItem(int position) {
                    return null;
                }
     
                @Override
                public long getItemId(int position) {
                    return 0;
                }
     
                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                    convertView = getLayoutInflater().inflate(R.layout.layout_livraison, null);
     
                    ImageView statut = (ImageView) convertView.findViewById(R.id.statut);
                    TextView client = (TextView) convertView.findViewById(R.id.client);
                    TextView adresse = (TextView) convertView.findViewById(R.id.adresse);
                    TextView ville = (TextView) convertView.findViewById(R.id.ville);
     
                    if(finalImage[position] == 1)
                    {
                        statut.setImageResource(R.drawable.circle_green);
                        alertmsg("statut", "staut: CA MARCHE");
                    }else
                    {
                        statut.setImageResource(R.drawable.circle_red);
                    }
     
                    client.setText(finalClient[position]);
     
                    adresse.setText(finalLivraison[position]);
                    ville.setText(finalVille[position]);
     
                    return convertView;
                }
     
     
            }
            CustomAdapter customAdapter = new CustomAdapter();
            listLiv.setAdapter(customAdapter);
     
     
        }

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

Discussions similaires

  1. erreur avec le module JSON::Parse
    Par Jasmine80 dans le forum Modules
    Réponses: 6
    Dernier message: 16/03/2018, 18h53
  2. [AJAX] Erreur sur login avec ajax et php json
    Par anous dans le forum jQuery
    Réponses: 3
    Dernier message: 13/10/2015, 02h31
  3. Problème remplissage listView avec 2 JSON
    Par Xenonmax dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 20/12/2011, 11h17
  4. erreur tcp/ip avec jdbc
    Par champion dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 03/04/2004, 14h32
  5. Erreur de sgmentation avec malloc
    Par simonm dans le forum C
    Réponses: 5
    Dernier message: 27/02/2003, 08h29

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