gp4004 Posté(e) 1 février 2010 Share Posté(e) 1 février 2010 (modifié) Bonjour à tous, je me décide à poster en désespoir de cause : Je fais une appli qui attaque un script php qui retourne un fichier xml J'arrive à parser ce fichier, ej stock ce qui m'intéresse dans un tableau ArrayList. j'essaye depuis 2 jours d'alimenter une liste clickable avec les valeurs de ce tableau, et je n'y arrive pas. J'ai beau avoir regardé x tutos, les docs google, rien, je ne sais plus comment m'y prendre... J'arrive juste à afficher le contenu de mon tableau dans un TextView (c'est déjà ça) si quelqu'un peut m'aider, me donner une piste... merci! MyAppli.java : package my.appli; import java.net.URL; import java.util.ArrayList; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; public class MyAppli extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); Button btOk = (Button) findViewById(R.id.Button01); btOk.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { TextView monTexte =(TextView)findViewById(R.id.TextView01); EditText maRecherche = (EditText)findViewById(R.id.EditText01); if (maRecherche.getText().toString().trim().length()<=2){ monTexte.setText("Recherche impossible !"); }else{ try { String texteRecherche = maRecherche.getText().toString(); String saisieUtilisateur = texteRecherche.replace(" ", "+"); URL url = new URL("htt://www.mon.site?q="+saisieUtilisateur+"&xml"); /* Get a SAXParser from the SAXPArserFactory. */ SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); /* Get the XMLReader of the SAXParser we created. */ XMLReader xr = sp.getXMLReader(); /* Create a new ContentHandler and apply it to the XML-Reader*/ XmlHandler myHandler = new XmlHandler(); xr.setContentHandler(myHandler); /* Parse the xml-data from our URL. */ xr.parse(new InputSource(url.openStream())); /* Parsing has finished. */ /* Set the result to be displayed in our GUI. */ ArrayList<?> tableauRetour = myHandler.getParsedData(); String myString = ""; for(int i=0; i ArrayList<?> tmp= (ArrayList<?>) tableauRetour.get(i); myString =myString+(i+1)+" - "+tmp.get(1)+"\n"; } if (myString.hashCode()!=0){ monTexte.setText(myString); }else{ monTexte.setText("Aucun resultat !"); } } catch (Exception e) { /* Display any Error to the GUI. */ monTexte.setText("Error: " + e.getMessage()); } } } }); } } main.xml : <?xml version="1.0" encoding="utf-8"?> android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > Modifié 4 février 2010 par gp4004 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
xma Posté(e) 1 février 2010 Share Posté(e) 1 février 2010 Il faut passer un Adapter à ta ListView sinon point de salut. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 1 février 2010 Share Posté(e) 1 février 2010 (modifié) Je pense qu'en cherchant un listarray adapter , tu devrais trouver ton bonheur. ( EDIT: houps pris de vitesse!) Je dois en avoir un qui traine dans mes applis. Si tu ne trouves vraiment rien, je posterai quand je retrouverai mon Mac avec Eclipse! Modifié 1 février 2010 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gp4004 Posté(e) 1 février 2010 Auteur Share Posté(e) 1 février 2010 Merci à tous les 2 pour vos réponses! je vais regarder du côté du listarray adapter... Ce qui me manque, c'est la méthode, je ne sais plus si je dois faire quoique ce soit sur mon layout main ou faire un second layout (qui comprendrait quoi d'ailleurs?) C'est la première fois que je suis aussi paumé sur un langage, ça fout les boules Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 1 février 2010 Share Posté(e) 1 février 2010 en gros ( vraiment désolé mais pas de temps ce soir, je prends déjà pas mal pour te répondre: public class XXXX extends ListActivity { //blabla comme une activité normale } Tu rajoutes une listview dans ton xml: et tu crées un adapteur qui va te remplir gentillement ta liste. Il y a des centaines de tuto sur les listview sur le net, (je m excuse encore une fois d'être si rapide et pas filer de lien, mais vraiment facile à choper) Le reste, ce sera du copier coller pour ta première listview, tu comprendras apres.. lol Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gp4004 Posté(e) 1 février 2010 Auteur Share Posté(e) 1 février 2010 en gros ( vraiment désolé mais pas de temps ce soir, je prends déjà pas mal pour te répondre: je n'en demandais pas plus, mais vraiment merci, je regarde ça dès demain si le boulot m'en laisse le temps! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gp4004 Posté(e) 4 février 2010 Auteur Share Posté(e) 4 février 2010 Bon, j'ai finalement réussi, je ne suis pas devant ma machine, mais en gros il me manquait : setContentView(R.layout.liste_produits); //liste_produits.xml contient un linearlayout et une listView id="@id/android:list" setListAdapter (new ProduitAdapter(MonActivityActuelle.this,R.layout.liste_produits,listeProduits); //mon adapter utilise ligne_produit.xml composé d'un linearLayout et de 2 textView ce qui me manquait depuis le début dans le setlistAdapter : MonActivityActuelle Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
frd Posté(e) 28 février 2010 Share Posté(e) 28 février 2010 Je relance un peu le sujet car je débute avec Android. Je voudrais rajouter sur chacun de mes item de la liste, un listener... Seul problème je dois ajouter ceci dans le Handler ou je peux le mettre dans l'activité principale? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.