我正在做的是想要从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;
}
扩展数组并为其提供下载的对象数量,但这似乎仍无效。
提前致谢!
答案 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();