2010-08-11 4 views
4

Je suis en train d'analyser un fichier XML à l'aide de la technique Android Pull Parser. Tout d'abord, jetez un oeil au fichier XML ci-dessous:Android Dynamic Array

<childs> 
    <students> 
     <name> hello </name> 
     <address> xyz </address> 
    </stdents>  

    <students> 
     <name> abc </name> 
     <address> def </address> 
    </stdents>  

</childs> 

Considérons que j'analyse le fichier ci-dessus. Maintenant, mon problème est que je veux créer un tableau séparé pour le nom et l'adresse. Donc, tout en analysant, je veux stocker les données du 1er étudiant en name[0] et address[0] et les données de l'élève suivant en name[1] et address[1]. En résumé, la taille du tableau s'étend à mesure que davantage de données sont analysées.

Y a-t-il un moyen de le faire? Je veux créer un tableau extensible dynamique? Ou s'il y a une autre façon de le faire alors s'il vous plaît aidez-moi à lutter contre ce problème.

+2

Pourquoi ne pas utiliser java.util.List? –

+0

@Marcin Gil mais je veux exacly comme tableau séparé becoz voulez afficher les données de tableau dans "ListAdapter" –

+0

Pourquoi ne pas utiliser ArrayAdapter qui peut prendre List comme argument? Si vous envisagez d'utiliser ListView, cela ne poserait aucun problème. –

Répondre

5

Vous pouvez utiliser Vector<String> puis (si vous avez besoin d'un tableau) copier les données dans un ou plusieurs tableaux à l'aide de la méthode toArray.

Vector<String> v = new Vector<String>(); 
    for (int i=0; i<10; i++) 
     v.add(new String(Integer.toString(i))); 

    Object s[] = v.toArray(); 

    for(int i=0; i<10; i++) 
     str = s[i].toString(); 

Une autre option:

String a[] = {}; 
    v.toArray(a); 
+0

exemple @Asahi? pls –

+0

@ Asahi merci beaucoup ... maintenant laissez-moi l'essayer dans mon problème –

+2

Cependant, vous devriez probablement utiliser ArrayList au lieu de Vector comme vecteur est syncronisé. – alexanderblom

2

Vous utilisez et la liste tableau comme cette

List<String> name=new ArrayList<String>(); 
List<String> address=new ArrayList<String>(); 
name.add(StudyParser.getValue(eimg, "name")); 
address.add(StudyParser.getValue(eimg,"address") 

où StudyParser.getValue(); est la méthode que vous appelez pour obtenir des données