我是Android编程的新手。我想知道ListView可以存储多少项?我在文档中搜索,但他们没有谈论这个。如果我将很多(可能是10k)的项目放入ListAdapter会对性能产生什么影响呢?
干杯, MK。
答案 0 :(得分:7)
ListView在Android中虚拟化。实际上,这意味着其中的元素数量没有实际限制。你可以在列表中放入数百万行,它只会为当前可见的行(或更多的顶部)分配内存。
查看有关为AdapterView编写自定义Adapter类的许多教程(ListView扩展了它)。另请查看ListViews上的Google I / O 2010会话;它真的很有用:here
答案 1 :(得分:5)
没有限制,因为ListView仅在项目进入视图时呈现项目,因此在呈现项目时仅关注ListView的数据(尽管它需要知道正确呈现滚动条的项目数量)
Google IO视频非常适合学习ListView http://www.youtube.com/watch?v=wDBM6wVEO70
那就是说,我会问你是否应该加载那么多,因为很明显用户无法全部查看它们并且滚动ListView并且很多项目将非常繁琐。如果是我,我会问一些问题:
有关ListView的更多信息 http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/ http://developer.android.com/guide/topics/ui/binding.html http://www.androidguys.com/2008/07/14/fancy-listviews-part-one/
答案 2 :(得分:3)
我创建了一个ListView,并使用Integer.MAX_VALUE作为返回到适配器的数字,以获取列表中的项目数。这对ListView的性能没有影响,即使它持有大约20亿个项目。
我认为10k会起作用:P
在这里查看我的答案,详细了解我的意思:How to create a closed (circular) ListView?
答案 3 :(得分:3)
Integer.MAX_VALUE
因为它的大部分功能都依赖于int position
。
答案 4 :(得分:-1)
您有内存限制(特定于设备)。只要您不用尽内存限制,就可以存储任意数量的项目。您可以使用ADT工具来监控应用程序随时使用的内存量。