我在我的 ListView 中使用 ArrayAdapter。
我真的不明白当我将 ArrayList 设置为我的 ArrayAdapter 时,它是否会重新创建它的所有对象,或者只是引用它。
由于某种原因,在列表视图中应该相同的相同对象不会受到属性更改的影响,就好像当前对象是另一个对象的克隆一样。
任何人都可以请清除吗?
这两种情况都是可能的,这里解释第二种情况如何帮助优化您的列表视图:http: //developer.android.com/training/improving-layouts/smooth-scrolling.html
这取决于您如何创建ArrayAdapter
.
如果您使用不带数组或不List
作为参数的构造函数版本,那么它将创建每个适配器实例维护的新列表。如果您使用以下版本之一创建适配器:
ArrayAdapter(Context context, int textViewResourceId, List<T> objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
然后,您可以向多个适配器提供相同的外部列表,并且只更改一次数据集,因为在这种情况下,适配器只是引用您的列表,而不复制数据。