2010-08-11 119 views
4

我通过Android Pull Parser技术解析XML文件。首先,看看下面的XML文件:Android动态数组

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

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

</childs> 

想想我正在解析上述文件。现在,我的问题是我想为名称和地址创建一个单独的数组。因此,在解析时,我想将第一位学生的数据存储在name[0]address[0]中,并将下一位学生的数据存储在name[1]address[1]中。总之,阵列大小随着更多数据解析而延伸。

有没有办法做到这一点?我的意思是创建一个动态的可扩展数组?或者如果还有其他的方式,那么请帮我解决这个问题。

+2

为什么不使用java.util.List? – 2010-08-11 09:37:29

+0

@Marcin Gil但我很希望作为分隔数组becoz想要在“ListAdapter”中显示数组数据 – 2010-08-11 09:46:55

+0

为什么不使用ArrayAdapter 可以将List作为参数?如果你打算使用ListView,这将是没有问题的。 – 2010-08-11 11:16:06

回答

5

您可以使用Vector<String>然后(如果您需要数组)将数据复制到使用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(); 

另一种选择:

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

@Asahi的例子?请问 – 2010-08-11 09:33:32

+0

@Asahi thanx很多...现在让我试试看我的问题 – 2010-08-11 09:52:08

+2

然而,你应该使用ArrayList而不是Vector,因为Vector是同步的。 – alexanderblom 2010-08-11 10:33:03

2

您使用和List阵列这样

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

其中StudyParser.getValue();是你打电话来获取数据的方法