[英]When should I use BaseAdapter in Android?
我正在使用适配器在列表视图中填充数据的android应用程序上工作。 我在应该使用BaseAdapter
地方感到困惑。 我读到很多问题,写在哪里,我们应该将ArrayAdapter
用于可以正常使用的数组和arraylist,并在使用游标的情况下使用CursorAdapter
。
我知道BaseAdapter
是ArrayAdapter
和CursorAdapter
的超类。 我已经检查了这个问题ArrayAdapter,BaseAdapter和ListAdapter之间有什么区别,但是没有解释我们何时应该使用BaseAdapter
。
什么时候应该使用BaseAdapter
?
您应该使用它:
如果您的模型数据尚未在具有具体ListAdapter
类的数据结构中,并且
如果您确定创建自定义适配器将比重组数据结构对用户更好,或者对您的开发工作更少
例如,假设您使用JSONArray
来解析JSON片段。 JSONArray
不实现List
接口,因此不能与ArrayAdapter
一起使用。 其他适配器均不匹配。 但是,您想在AdapterView
显示此JSONArray
。 在这种情况下,您的选择是:
滚动数据并将其转换为ArrayList
,因此可以使用ArrayAdapter
,或者
创建可以适配JSONArray
( JSONArrayAdapter
)的BaseAdapter
的自定义子类
停止使用JSONArray
,而是使用其他内容来解析JSON,例如Gson,它可以直接填充List
,从而允许您使用ArrayAdapter
如果您的数据在Collection
可用,则可以使用ArrayAdapter
。 (使用addAll
方法将数据放入适配器)
如果您的数据不在Collection
则您不能,您必须找到另一个适合您的适配器。 (通常:当数据来自数据库时,使用CursorAdapter
)
如果找不到任何适用于您的数据结构/数据源的现有适配器:可以编写BaseAdapter
的子类来支持您自己的数据结构。
如果您打算在ListView
显示数据(这是一个常见的用例):那么您必须确保您的ListAdapter
也实现了ListAdapter
(因为ListView
需要一个ListAdapter
)。
请注意, ArrayAdapter
和CursorAdapter
实现ListAdapter
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.