我是Android开发的新手,我对在Commonsware的“ AndroID开发的繁忙编码员指南”中阅读的摘录有疑问.有一个示例,其中它构造了一个扩展ListActivity的类,并显示了通过上下文菜单从列表中删除和删除的功能.在设置带有列表字符串源的ArrayAdapter之前,文本说将String数组转换为ArrayList类型,因为“我们希望能够即时更改列表的内容,这非常重要.如果您使用ArrayList而不是普通的String数组则更容易”
如果我们使用ArrayList或String数组直接 *** 作列表,我会理解这个概念,但是如果我们使用ArrayAdapter.add / insert / remove方法,为什么这很重要?一旦创建了ArrayAdapter(以及我从该.java文件中了解的信息),无论源数据是来自数组还是ArrayList,它都会将其转换为List对象.
我在创建适配器时尝试使用普通数组,但出现了错误(如文本所述),但我不明白为什么.用字符串数组创建ArrayAdapter与ArrayList之间有什么区别…总之不会将它变成相同的List对象吗?尝试通过适配器添加/插入/删除时,是否与原始源变量有某种联系?
抱歉,很长的问题,但在此先感谢.
解决方法:
您可以更改原始阵列/阵列列表.然后,您在适配器上调用notifyDataSetChanged(),它将使用新信息更新列表.如果您使用ArrayList,则可以使用其所有正常 *** 作以任意索引插入/删除数据,而普通索引字符串无法做到这一点.
因此,ListVIEw的内容很大程度上与原始数据源相关联-调用myListVIEw.setAdapter()时,适配器未固定其内容.
但是,如果您使用数组尝试添加,删除,插入等方法,则将导致错误,因为无法像这样使用数组. ArrayAdapter实际上会将String数组转换为AbstractList对象,但是无法修改.
以上是内存溢出为你收集整理的Android开发-在ArrayAdapter中使用ArrayList与字符串数组全部内容,希望文章能够帮你解决Android开发-在ArrayAdapter中使用ArrayList与字符串数组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)