Android开发-在ArrayAdapter中使用ArrayList与字符串数组

Android开发-在ArrayAdapter中使用ArrayList与字符串数组,第1张

概述我是Android开发的新手,我对在Commonsware的“Android开发的繁忙编码员指南”中阅读的摘录有疑问.有一个示例,其中它构造了一个扩展ListActivity的类,并显示了通过上下文菜单从列表中删除和删除的功能.在设置带有列表字符串源的ArrayAdapter之前,文本说将String数组转换为ArrayLis

我是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与字符串数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1068484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存