2011-01-29 3 views
1

Что я делаю, это желание начать с ListView с 0 строк, загрузить список из Интернета, а затем заполнить ListView загруженным содержимым. Кажется, достаточно просто, но массивы оказываются проблемой.ListView with Array Issue

Что происходит, что я объявляю свой массив в единственном способе 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

Не используйте массивы, используйте некоторую реализацию списка. (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 для его поддержки с помощью одного из конструкторов ArrayAdapter, которые принимают аргумент List.