Partage
  • Partager sur Facebook
  • Partager sur Twitter

De MySQL vers un ListView

    23 janvier 2020 à 6:47:25

    Bonjour à toutes et à tous. Voilà, je viens de débuter sur le développement Android et je suis confronté à un problème que j'ai éssayé de résoudre plusieurs fois mais que je n'y arrive pas. Je veux afficher des données d'une base local MySQL vers un ListView sur Android mais rien ne s'affiche et dès fois l'application, une fois lancer, s'arrete soudainement. J'ai créé un script PHP qui convertit mes données MySQL en format JSON pour pouvoir l'utiliser dans mon application. Merci d'avance pour tout ceux qui m'apporteront leurs aides.

    ps: je suis sur eclipse

    voici mon activité principal qui établit la connexion HTTP et qui récupère mes données en chaine de caractère puis en oject JSON.

    voici la class java qui se chargera d'adapter et d'inflater mes données dans ma ListView

    -
    Edité par ZakkSabbath 23 janvier 2020 à 7:46:42

    • Partager sur Facebook
    • Partager sur Twitter
      23 janvier 2020 à 10:27:24

      Tu t'y prend mal pour récupérer tes valeurs JSON dans tes variables.

      La bonne pratique serait de faire un objet (un class d'objet) qui reprends la structure de ton JSON en important les class :

      import com.google.gson.Gson;
      import com.google.gson.reflect.TypeToken;
      
       ArrayList<TonObjet> listeTonObjetData = new ArrayList<TonObjet>();
      
      
      Gson gson = new Gson();
      String JSONString = getContentRetourPHP();
      Type collectionType = new TypeToken<ArrayList<TonObjet>>(){}.getType();
      listeTonObjetData = gson.fromJson(JSONString, collectionType);

      Ensuite je te conseille vivement d'utiliser une RecyclerView, les ListView sont dépassées et permettent moins de chose.

      Je te laisse chercher sur Google comment passer ta liste d'objet data à une RecyclerView via un RecyclerView.Adapter

      En outre je ne mettrais pas de "\n" dans la récupération du contenu du fichier, ça ne sert à rien car le JSON est lu en ignorant les retours à la ligne.

      -
      Edité par Niko300 24 janvier 2020 à 14:47:39

      • Partager sur Facebook
      • Partager sur Twitter
        23 janvier 2020 à 13:45:08

        Ok, je vais éssayer. Merci pour ton interet!
        • Partager sur Facebook
        • Partager sur Twitter
          23 janvier 2020 à 13:51:57

          Bonjour,

          Merci de colorer votre code à l'aide du bouton Code

          Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: java;">Votre code ici</pre>.

          Liens conseillés

          • Partager sur Facebook
          • Partager sur Twitter
            31 janvier 2020 à 14:55:22

            Re-bonjour, j'ai suivi tes conseils Niko300 et je me heurte à un nouveau problème. J'ai réussi à récupérer les flux de données et à les convertir en chaine de charactere (ps: j'ai utiliser des fonctions). Puis j'ai fait une fonction qui doit récuperer et mettre dans des variable les objets JSON mais le problè c'est que la fonction me retourne toujours un 0 et je n'arrive pas à trouver la source du problème. Encore merci

            voici ma fonction:

            private int parse3Data() {
            		try {
            			JSONArray ja= new JSONArray("jsonData");
            			JSONObject jo= null;
            			
            			publique.clear();
            			Publique p= null;
            			
            			for(int i=0; i<ja.length(); i++) {
            				jo= ja.getJSONObject(i);
            				
            				String nom_service= jo.getString("nom_service");
            				String type_papier= jo.getString("type_papier");
            				String demarche_suivre= jo.getString("demarche_suivre");
            				
            				p= new Publique();
            				p.setNom_service(nom_service);
            				p.setType_papier(type_papier);
            				p.setDemarche_suivre(demarche_suivre);
            				
            				publique.add(p);
            			}
            			
            			return 1;
            			
            		}catch(JSONException e) {
            			e.printStackTrace();
            		}
            		
            		return 0;
            	}



            • Partager sur Facebook
            • Partager sur Twitter
              8 avril 2020 à 16:17:16

              Ok, je vais y regarder, désolé pour le délai de réponse mais je ne me connectais plus sur le site.

              Est-ce que ton problème est encore d'actualité ?

              -
              Edité par Niko300 8 avril 2020 à 16:17:35

              • Partager sur Facebook
              • Partager sur Twitter

              De MySQL vers un ListView

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown