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 d'affichage de donnée d'une ArrayList dans une ListView


Sujet :

Composants graphiques Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut Problème d'affichage de donnée d'une ArrayList dans une ListView
    Bonjour à tous,

    J'avais déjà poster ici sans avoir eu de réponse ou mon problème n'est toujours pas résolu, donc je ré-ouvre un nouveau topic.
    Je récupère une liste JSON de musées et je dois l'affiché dans un tableau, mais à chaque fois, lorsque je compile mon application crash.
    Je ne sais pas vraiment comment affichés mes données après plusieurs jours, après avoir tester plusieurs choses et plusieurs tutoriel, je reviens ici.

    Je vous montre mon code.

    Mon Activity:

    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
     
    package com.example.eric.listemuseebfast;
     
    import android.app.ListActivity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Parcel;
    import android.os.Parcelable;
    import android.widget.ArrayAdapter;
    import android.widget.ListAdapter;
    import android.widget.ListView;
     
    import com.google.android.gms.appindexing.Action;
    import com.google.android.gms.appindexing.AppIndex;
    import com.google.android.gms.appindexing.Thing;
    import com.google.android.gms.common.api.GoogleApiClient;
     
    import java.util.ArrayList;
    import java.util.List;
     
     
    public class MainActivity extends ListActivity {
     
        private ListView lv;
     
        ArrayList<Musee> musee = new ArrayList<Musee>();
        /**
         * ATTENTION: This was auto-generated to implement the App Indexing API.
         * See https://g.co/AppIndexing/AndroidStudio for more information.
         */
        private GoogleApiClient client;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            lv = (ListView) findViewById(R.id.list);
     
            sendList(musee);
            lv.setAdapter(sendList(musee));
     
            Intent myIntent = new Intent(MainActivity.this, MuseeList.class);
            myIntent.putExtra(String.valueOf(android.R.id.list), (Parcelable) musee);
            startActivity(myIntent);
     
     
            ArrayAdapter<Musee> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, (Parcelable) Musee.add(musee));
            lv.setAdapter(adapter);
     
    //J'avais aussi tenter de crée cette fonction dans mon activity
     
        public ListAdapter sendList(ArrayList<Musee> musees) {
     
            System.out.println("^^^^^^" + ApiListeMusee.getMusees());
     
            ArrayAdapter adapt = new ArrayAdapter<Musee>(this, R.layout.activity_main, R.id.list, ApiListeMusee.getMusees());
            ApiListeMusee.getMusees().clear();
            ApiListeMusee.getMusees().addAll(musees);
            adapt.notifyDataSetChanged();
     
            return adapt;
        }
    }
    Ici la classe ou je récupère les données de mon API:

    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
     
    package com.example.eric.listemuseebfast;
     
    import org.json.JSONArray;
    import org.json.JSONObject;
     
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.ArrayList;
     
     
    /**
     * Created by on 24/12/2016.
     */
     
    public class ApiListeMusee {
     
        public static ArrayList<Musee> getMusees() {
     
            ArrayList<Musee> musees = new ArrayList<>();
     
            try {
                String myurl= "J4ai caché l'url de l'api qui est en JSON";
     
                URL url = new URL(myurl);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.connect();
                InputStream inputStream = connection.getInputStream();
                /*
                 * InputStreamOperations est une classe complémentaire:
                 * Elle contient une méthode InputStreamToString.
                 */
                String result = InputStreamOperations.InputStreamToString(inputStream);
     
                // On récupère le JSON complet
                JSONObject jsonObject = new JSONObject(result);
                // On récupère le tableau d'objets qui nous concernent
                JSONArray array = new JSONArray(jsonObject.getString("musées"));
                // Pour tous les objets on récupère les infos
                for (int i = 0; i < array.length(); i++) {
                    // On récupère un objet JSON du tableau
                    JSONObject obj = new JSONObject(array.getString(i));
                    // On fait le lien sur les musées - Objet JSON
                    Musee musee = new Musee();
                    musee.setDataSetid(obj.getString("datasetid"));
                    musee.setRecordid(obj.getString("recordid"));
                    musee.setFields(obj.getString("fields"));
                    musee.setPeriode_ouverture(obj.getString("periode_ouverture"));
                    musee.setNom_du_musee(obj.getString("nom_du_musee"));
                    // On ajoute le musée à la liste
                    musee.add(musees);
     
                }
     
            } catch (Exception e) {
                e.printStackTrace();
            }
            // On retourne la liste des musées
            return musees;
        }
     
    }
    La classe InputStreamOperations:

    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
     
    package com.example.eric.listemuseebfast;
     
    import java.io.IOException;
    import java.io.InputStream;
     
     
    /**
     * Created by Eric on 24/12/2016.
     */
     
    public class InputStreamOperations {
     
        /**
         * @param in : buffer with the php result
         * @param bufSize : size of the buffer
         * @return : the string corresponding to the buffer
         */
        public static String InputStreamToString (InputStream in, int bufSize) {
            final StringBuilder out = new StringBuilder();
            final byte[] buffer = new byte[bufSize];
            try {
                for (int ctr; (ctr = in.read(buffer)) != -1;) {
                    out.append(new String(buffer, 0, ctr));
                }
            } catch (IOException e) {
                throw new RuntimeException("Cannot convert stream to string", e);
            }
            // On retourne la chaine contenant les données de l'InputStream
            return out.toString();
        }
     
        /**
         * @param in : buffer with the php result
         * @return : the string corresponding to the buffer
         */
        public static String InputStreamToString (InputStream in) {
            // On appel la methode precedente avec une taille de buffer par defaut
            return InputStreamToString(in, 1024);
        }
     
    }
    Ma classe "Musee" que j'ai crée pour crée et traiter mes objets musee

    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    package com.example.eric.listemuseebfast;
     
    import java.util.ArrayList;
     
    /**
     * Created by on 26/12/2016.
     */
    public class Musee extends ApiListeMusee{
     
        //@Test
        //public ArrayList<Musee> musees = new ArrayList<Musee>();
     
        private String datasetid;
        private String recordid;
        private String fields;
        private String periode_ouverture;
        private String nom_du_musee;
     
        //On appel le constructeur de notre class dans le main pour afficher la liste des musées?
        //Mes constructeurs
        public Musee() {}
        public Musee(String datesetid, String recordid, String fields, String periode_ouverture, String nom_du_musee) {
            this.datasetid = "datasetid";
            this.recordid = "recordid";
            this.fields = "fields";
            this.periode_ouverture = "periode_ouverture";
            this.nom_du_musee = "nom_du_musee";
        }
     
        //Surcharge du constructeur Musee
     
        //On appel la methode getMusee() pour récupérer les musées que nous renvoie l'api JSON
        //Mes accesseurs getter + setter
        public String getDataSetid() {
            return datasetid;
        }
     
        public String getRecordid() {
            return recordid;
        }
     
        public String getfields() {
            return fields;
        }
     
        public String getPeriode_ouverture() {
            return periode_ouverture;
        }
     
        public String getNom_du_musee() {
            return nom_du_musee;
        }
     
        public void setDataSetid(String datasetid) {
            this.datasetid = datasetid;
        }
     
        public void setRecordid(String recordid) {
            this.recordid = recordid;
        }
     
        public void setFields(String fields) {
            this.fields = fields;
        }
     
        public void setPeriode_ouverture(String periode_ouverture) {
            this.periode_ouverture = periode_ouverture;
        }
     
        public void setNom_du_musee(String nom_du_musee) {
            this.nom_du_musee = nom_du_musee;
        }
     
        //Ajouter la liste
        public ArrayList add(ArrayList<Musee> musees) {
         //Ajouter tout ces attributs dans mon ArrayList, création d'objet Musee
            for(int i = 0; i < musees.size(); i++)
            {
                Musee musee = new Musee();
                musee.datasetid = getDataSetid();
                musee.recordid = getRecordid();
                musee.fields = getfields();
                musee.periode_ouverture = getPeriode_ouverture();
                musee.nom_du_musee = getNom_du_musee();
                this.add(musees);
            }
            return musees;
         }
     
        //test de deboggage pour le passage de données
        public static String afficherText() {
            String texte;
            texte = ("test");
            return texte;
        }
     
    }
    En espérant que quelqu'un trouve d'où vient mon problème, qu'est ce qu'il manque et qu'est ce qui ne va pas.
    Merci à celui ou ceux qui trouveront.
    Et bonne année

  2. #2
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Il n'y a rien à "trouver" : c'est toujours autant du grand n'importe quoi au niveau architectural. Même les remarques faites par d'autres intervenants et les miennes ont été ignorées (2 pages consacrées à ton soucis consultable ici).

    Résultat : tu mets 2 semaines à faire quelque chose qui prend en réalité quelques heures. Personnellement, je n'ai plus rien à rajouter. Je passe la main aux suivants.
    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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    ça n'a rien résolu à mon problème.
    Toi même tu ne sais pas comment résoudre le problème donc merci d'éviter les remarques inutiles.
    Je viens ici pour résoudre mon soucis, pas pour me faire clasher par X ou Y.
    D'ailleurs, je ne l'ai pas mis en résolu le topic justement pour ça.
    Et oui, d'après toi je peux être mauvais c'est vrai, mais si je serais si bon que ça, je serai plutôt en train d'aider les plus novices (comme moi).
    Merci, et encore bonne année.

  4. #4
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par eristoff72 Voir le message
    Toi même tu ne sais pas comment résoudre le problème donc merci d'éviter les remarques inutiles.
    Bien sûr que si.
    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 à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Et bien si tu sais, aide moi alors, j'ai bien dit "aider" et non pas une pseudo aide.

  6. #6
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Je t'ai déjà répondu : c'est le resultat du générateur http://gendroid.univ-pau.fr/remoteDatabase.html

    Il te faut 4 choses (c'est marqué en grand) : un POJO (Musee.java), une ListActivity (incluant une AsyncTask), un item xml personnalisé et un Adapter personnalisé. Soit 3 fichiers Java et un fichier xml, respectant chacun une structure que je t'ai demandé d'étudier. Ensuite seulement on discute.
    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

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Musee.java : C'est fait.
    ListActivity : J'ai mon MainActivity
    Adapter personnalisé : j'ai vu ça, mais il faut créer une classe Adapter ? Il ne faut pas juste l'utiliser ?
    Je croyais que c'était une fonction déjà faite de base.
    Ah oui, et mon Api ne fonctionne pas avec ton lien.

  8. #8
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par eristoff72 Voir le message
    Musee.java : C'est fait.
    Ce fichier est une blague. Tu trouves vraiment que cela ressemble à Fruit.java (l'exemple que je t'avais demandé d'étudier) ?
    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

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Enfaite, si je comprend bien, ma classe ApiListeMusee ne sert à rien ?
    Je devrais utiliser "AsyncTask" ?
    Et admettons que ce soit ça, ça marchera vraiment avec l'API que je t'ai fournis la dernière fois ?

  10. #10
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par eristoff72 Voir le message
    Enfaite, si je comprend bien, ma classe ApiListeMusee ne sert à rien ?
    Effectivement. Et ce n'est qu'une erreur parmi d'autres...
    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

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Dans ton "FruitAdapter.java" tu vas chercher l'id "textView_label" je suppose que c'est un textview et non une ListView, de ce fait, le code va bien changer ?
    Tu ne refais pas ça ?

    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
     
    public View getView(int position, View convertView, ViewGroup parent) {
     
    		View view = convertView;
     
    		if (view == null)
    		{
    			view = this.li.inflate(this.myItemLayout, null);
    		}
     
    		Fruit f = this.getItem(position);
    		if(f != null)
    		{
     
    			TextView tv0 = (TextView)view.findViewById(R.id.textView_label);
    			tv0.setText(String.valueOf(f.getLabel()));
     
    			TextView tv1 = (TextView)view.findViewById(R.id.textView_weight);
    			tv1.setText(String.valueOf(f.getWeight()));
     
    			TextView tv2 = (TextView)view.findViewById(R.id.textView_price);
    			tv2.setText(String.valueOf(f.getPrice()));
     
    			TextView tv3 = (TextView)view.findViewById(R.id.textView_quantity);
    			tv3.setText(String.valueOf(f.getQuantity()));
     
    			TextView tv4 = (TextView)view.findViewById(R.id.textView_fresh);
    			tv4.setText(String.valueOf(f.getFresh()));
     
    		}
    		return view;
    	}

  12. #12
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    R.id.textView_label fait référence à un textView défini dans l'item xml personnalisé, qui lui même doit son existence au fait que le POJO Fruit contient un champs nommé "label". Tout ceci est à adapter pour le cas d'un Musée.
    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

  13. #13
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Je n'utilise pas de ListView du coup ?

  14. #14
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Si. Mais cela est géré ailleurs.
    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

  15. #15
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    D'accord.
    Je récupérai le code que me donne ton générateur.
    Je n'ai pas encore testé, j'ai juste un petit problème sur la fonction "onCreate(Bundle savedInstanceState)"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
     
            this.adapter = new MuseeAdapter(this, R.layout.musee_item);
            this.setListAdapter(adapter);
            getListView().setOnItemClickListener(this);
     
        }
    J'ai voulu mettre "musee_item" mais il ne me le reconnaît pas, bien évidemment, il devrait être autre part, auparavant c'était "fruit_item", sauf que je ne l'ai pas trouvé, et si je remet "fruit_item", il ne le trouve plus non plus.
    Tu sais d'où il vient ce : "fruit_item" ?

  16. #16
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    J'ai un problème lors de la compilation, il me met ça: java.lang.SecurityException: Permission denied (missing INTERNET permission?)

    sauf que dans mon AndroidManifest.xml j'avais bien mis la permission depuis le début :

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.eric.listemuseebfast">
     
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
     
            <uses-permission android:name="android.permission.INTERNET" />
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     
            <activity android:name=".MuseeActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity><!-- ATTENTION: This was auto-generated to add Google Play services to your project for
         App Indexing.  See https://g.co/AppIndexing/AndroidStudio for more information. -->
            <meta-data
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
        </application>
     
    </manifest>

  17. #17
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Hephaistos007 tu es sûr que ton code générer de base avec les fruits est bon ?
    Puisque moi j'ai une erreurs avec mes musées.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Du coup, j'ai un problème que je n'arrive pas à résoudre, cette class:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private final class DownloadMusee extends AsyncTask<String, Void, ArrayList<Musee>>
    Lorsque je passe des paramètres à ma fonction "doInBackground(String datasetid, String recordid, String fields, String periode_ouverture, String nom_du_musee)"
    Et que j'instancie un nouvelle URL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    URL url = new URL(
    Tu sais d'où ça peut venir ?
    Merci d'avance.

  19. #19
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Bon, je donne un retour, j'ai remis comme avant, mais j'ai toujours cette erreur:

    E/genDROID: An error occured while fetching
    org.json.JSONException: No value for Musees ..

  20. #20
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Oui, le code généré est 100% valide.

    R.layout.musee_item n'as de sens que si musee_item.xml existe

    <uses-permission android:name="android.permission.INTERNET" /> doit être mis AVANT le noeud <application>

    Quant à l'AsyncTask, à aucun moment elle n'est utilisée comme tu le dis. "doInBackground(String datasetid, String recordid, String fields, String periode_ouverture, String nom_du_musee)" est le fruit de ton imagination.
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/03/2016, 15h14
  2. Problème d'affichage des données de la BD dans une JList
    Par hela_sfar dans le forum Composants
    Réponses: 0
    Dernier message: 15/07/2013, 16h14
  3. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 18h37
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 11h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48

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