带有数组问题的ListView

时间:2011-01-29 01:00:41

标签: android listview

我正在做的是想要从0行开始我的ListView,从Internet下载列表,然后使用下载的内容填充ListView。看起来很简单,但数组证明是一个问题。

发生的事情是我正在以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;
}

扩展数组并为其提供下载的对象数量,但这似乎仍无效。

提前致谢!

2 个答案:

答案 0 :(得分:0)

  

如何扩展阵列...

我假设您使用的是ArrayAdapter。不使用固定大小的数组,而是使用动态可调整大小的ArrayList来使用其中一个带有List参数的ArrayAdapter构造函数来支持它。

答案 1 :(得分: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();