2010-10-22 52 views
2

如何给ListView赋值? 当我尝试使用字符串数组创建ListView时,我的进程突然停止。使用字符串数组的ListView

 public String[] items_list=new String[100]; 
    items_list[0]="11"; 
    items_list[1]="22"; 
    items_list[2]="33"; 
    items_list[3]="44"; 
    ListView listitems=(ListView)findViewById(R.id.list); 
    adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items_list); 
    listitems.setAdapter(adapter); 

但是,如果我用ite声明初始化字符串数组,它是工作。为什么这是发生?

 public String[] items_list={"chocolate","lime juice","icecreame"}; 

请帮我... Thnk你..

+1

嗨,玛雅,你可以在这里复制错误跟踪plz? – Sephy 2010-10-22 11:02:04

+0

如果您期望得到合理的答案,您必须发布您的logcat – Falmarri 2010-10-22 17:36:41

回答

3

嘛,你让100个对象的数组中

public String[] items_list=new String[100]; 
items_list[0]="11"; 
... 
items_list[3]="44"; 

但只填写了前4个元素,这意味着其余的96个字符串为空。这可能会导致ListView尝试填写列表时出错,因为它假定列表中有100个元素。只尝试在new String[100];

0

上根据需要分配尽可能多的内存。Tseng的答案对可能的原因是正确的。 ListView将看到数组的大小为100,并会尝试使用剩余元素中的空值。

使用任何子类List<String>(例如,ArrayList<String>Vector<String>)来保存您的数据,并且适配器将正常运行。