Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android阵列支持的ListView底部添加更多项目,并保持位置?_Android - Fatal编程技术网

如何在Android阵列支持的ListView底部添加更多项目,并保持位置?

如何在Android阵列支持的ListView底部添加更多项目,并保持位置?,android,Android,我有一个列表视图,其中有一个ArrayAdapter提供数据。我正在添加分页,因此当您滚动到底部时,它会加载更多行 但当我使用数组时,我发现了一个问题。我无法扩展数组,因为数组的大小显然是固定的,如果我创建一个新的数组,ListView要么忽略新项(notifyDataSetChanged),要么(如果我用新数组刷新列表),它跳到顶部 通常的做法是什么?使用不同的集合类型?使用具有最大行数容量的大型阵列?或者,是否有一种方法可以通知适配器数据集已更改并且它实际工作(notifyDataSetCh

我有一个列表视图,其中有一个ArrayAdapter提供数据。我正在添加分页,因此当您滚动到底部时,它会加载更多行

但当我使用数组时,我发现了一个问题。我无法扩展数组,因为数组的大小显然是固定的,如果我创建一个新的数组,ListView要么忽略新项(notifyDataSetChanged),要么(如果我用新数组刷新列表),它跳到顶部


通常的做法是什么?使用不同的集合类型?使用具有最大行数容量的大型阵列?或者,是否有一种方法可以通知适配器数据集已更改并且它实际工作(notifyDataSetChanged()在我的场景中不工作,可能是因为数组没有更改,它是一个完全不同的数组,因此notify可能与旧的数组一起工作)。或者我应该使用新的较大数组设置适配器,并将其跳转到正确的位置?

您在标题中说的是ArrayList,但您所说的只是一个数组。尝试使用ArrayList,您可以使用
ArrayList.add()
方法添加任意数量的项。也许我误解你了吧?

对不起,输入错误。我正在使用一个数组。我需要类型安全,并希望避免每次从集合中放置/移除时都使用铸造。最好是将ArrayList子类化,而不是使用数组?不幸的是,我没有一个很好的答案。ArrayList是我在本例中使用的。改为子类化……我将把它留给其他人来回答。:)还有一点很奇怪,为什么在将其添加到ArrayList时必须进行强制转换?你可以创建一个ArrayList。是的,你是对的,不需要强制转换。ArrayList看起来不错,虽然没有ArrayListAdapter,但是否有合适的预构建适配器,或者我是否需要自己开发。ThxYep,当然是。ArrayAdapter实际上接收列表和典型数组。如果您勾选这里:有两个不同的构造函数可以接受一个列表。