2011-01-29 60 views
1

我在做的是想從我的ListView開始,用0行,從Internet下載列表,然後用下載的內容填充ListView。看起來很簡單,但陣列被證明是一個問題。ListView與Array問題

發生了什麼事是我要說出我的數組中的唯一途徑的ListView似乎想它

static String[] CONTENTS = new String[]{}; 

,使之與沒有行填充。在通過線程下載內容之後,我然後用我下載的內容填充陣列。問題是它不想填充數組;如果我用一個空字符串啓動數組,它只會讓我用一行填充它(所以如果我給它一個包含多個對象的數組,它不會執行任何操作)。如何擴展ListView從中獲取數據的數組,所以我可以使用比我聲明的更多的對象來填充它?

最接近我已經能來是通過代碼

private String[] expand(String[] array, int size) { 
    String[] temp = new String[size]; 
    System.arraycopy(array, 0, temp, 0, array.length); 
    for(int j = array.length; j < size; j++) 
     temp[j] = ""; 
    return temp; 
} 

展開數組,並給予它下載的對象的數量,但似乎仍然沒有工作。

提前致謝!

回答

0

不要使用數組,請使用List的一些實現。 (ArrayList將完成這項工作)。集合遠遠優於老派陣列。

//List 
list = new ArrayList(); 
//BaseAdapter 
adapter = new ArrayAdapter<String>(this, 
    android.R.layout.simple_list_item_1, list); 

//ListView 
listView = (ListView) findViewByID(R.id.listview); 
listView.setAdapter(adapter); 

而當你添加/刪除元素/從list,則必須調用

adapter.notifyDataSetChanged(); 
0

我怎樣才能在陣列上擴大...

我假設你使用的是ArrayAdapter。而不是使用固定大小的數組,請使用動態調整大小的ArrayList以使用其中一個採用List參數的ArrayAdapter構造函數進行備份。