我是Android开发新手,我对Commonsware的“繁忙的编码器Android开发指南”中摘录的一段摘录有疑问。有一个示例,它构造了一个扩展ListActivity的类,并显示了通过上下文菜单从列表中删除和删除的功能。在为列表创建一个带有字符串源的ArrayAdapter之前,文本说要将String数组转换为一个ArrayList类型,因为“我们希望能够即时更改列表的内容,如果你使用ArrayList而不是普通的字符串数组更容易“Android开发 - 使用ArrayList <String> vs ArrayAdapter的字符串数组
我理解这个概念如果我们使用ArrayList或String数组直接操作列表,但为什么如果我们使用ArrayAdapter.add /插入/删除方法?一旦创建了ArrayAdapter(并且从我从该.java文件中理解的内容),它将源数据转换为List对象,无论它来自数组还是ArrayList。
我尝试使用正常的数组创建适配器时,我得到一个错误(正如预期的文本所说),但我不明白为什么。创建一个ArrayAdapter与一个字符串数组与ArrayList的区别是什么......它不会将它变成同一个List对象吗?试图通过适配器添加/插入/删除时,是否有某种绑定回原始源变量?
对不起,长期的问题,但在此先感谢。
感谢您的快速响应!我认为它变得更加清晰。然而,我仍然不清楚这个事实,我没有直接改变数组或ArrayList ...我正在改变适配器(我猜,它调用add/insert在自己的List上,它是从原始源创建的)。我曾经看到,ArrayAdapter在使用Array.asList()时提供了一个数组与List对象,我认为这意味着对该List的任何更改都会尝试将数据写回原始数组。所以通过我调用添加适配器,它间接地尝试调用添加到原始数组上。 – 2011-01-25 15:39:28