Bonjour,
Je viens de parser un fichier xml et je l'affiche en tant que textview mais lorsque je veux l'afficher en tant que listView en passant par un adapteur et une listview cela pose un probleme
quelqu'un peut me donner une idée?
Bonjour,
Je viens de parser un fichier xml et je l'affiche en tant que textview mais lorsque je veux l'afficher en tant que listView en passant par un adapteur et une listview cela pose un probleme
quelqu'un peut me donner une idée?
moi je le fais... donc montre moi ton code et ton erreur...
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 public class MyAdapter extends BaseAdapter{ // les données à afficher private ArrayList<Data> data; // * Le LayoutInflater permet de parser un layout XML et de // * te transcoder en IHM Android. Pour respecter l'interface // * BaseAdapter private LayoutInflater inflater; public MyAdapter(Context context,ArrayList<Data> data) { inflater = LayoutInflater.from(context); this.data = data; } // * il nous faut spécifier la méthode "count()". // * Cette méthode permet de connaître le nombre d'items présent // * dans la liste. Dans notre cas, il faut donc renvoyer le nombre // * de personnes contenus dans "mListP". public int getCount() { return data.size(); } // Permet de retourner un objet contenu dans la liste public Object getItem(int index) { return data.get(index); } public long getItemId(int index) { return data.get(index).hashCode(); } public static class ViewHolder{ TextView text01; TextView text02; TextView text03; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView==null){ convertView=inflater.inflate(R.layout.listitem, null); holder=new ViewHolder(); holder.text01=(TextView) convertView.findViewById(R.id.txtnom); holder.text02=(TextView) convertView.findViewById(R.id.txtdetail); holder.text03=(TextView) convertView.findViewById(R.id.txtdet); convertView.setTag(holder); }else{ holder=(ViewHolder) convertView.getTag(); } holder.text01.setText((CharSequence) data.get(position).getCount()); holder.text02.setText((CharSequence) data.get(position).getFichier()); holder.text02.setText((CharSequence) data.get(position).gtTitre()); return convertView; } }
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 public class ContainerData { static public Context context; public ContainerData() { } public static Data getFeeds(){ // On passe par une classe factory pour obtenir une instance de sax Data data = null; try { /** Handling XML */ SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); /** Send URL to parse XML Tags */ URL sourceUrl = new URL( "http://oxiane.com/rest/GetFilieres"); /** Create handler to handle XML Tags ( extends DefaultHandler ) */ MyXMLHandler myXMLHandler = new MyXMLHandler(); xr.setContentHandler(myXMLHandler); xr.parse(new InputSource(sourceUrl.openStream())); } catch (Exception e) { System.out.println("XML Pasing Excpetion = " + e); } /** Get result from MyXMLHandler SitlesList Object */ data = MyXMLHandler.data; return data; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class ViewData extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listitem); Bundle b = getIntent().getExtras(); int index = b.getInt("position"); Data e = ContainerData.getFeeds(); ((TextView)findViewById(R.id.txtnom)).setText((CharSequence) e.getCount()); ((TextView)findViewById(R.id.txtdet)).setText((CharSequence) e.getCount()); ((TextView)findViewById(R.id.txtdetail)).setText((CharSequence) e.getFichier()); }
Tu devrais utiliser un SimpleAdapter, sans créer une classe qui en hérite...
prend exemple sur ce tuto : http://a-renouard.developpez.com/tut...ndroid/sqlite/
je pense que ça t'aidera pour alimenter ta listView, ça me paraît un peu compliqué ce que tu fais
non je devais remplir ma liste dynamiquement en parsant un fichier xml
bah personnellement mon algo à moi :
-Récupération de mes infos du xml dans une classe
-Je met les infos dans une hashmap après
-Avec un simple adapter, j'adapte les éléments de ma hashmap sur les éléments de ma listview...
et tout ça en dynamique
Partager