Android - ListView 和标签
我一直在 ListView 对象上使用 ArrayListAdapter。我想知道是否有一种简单的方法可以将每个列表视图项的一些额外数据存储为标签对象。
I have been using ArrayListAdapter on ListView objects. I am wondering if there is a simple way to store some extra data for each listview item as a tag object.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通常,您使用字符串数组或列表作为数组列表的数据,适配器方法
getItem(position)
将返回相应的字符串。但是您可以使用任何对象数组或列表作为输入,从而将任何数据作为列表项传递。例如:
您可以将
MyListItem
数组传递给数组适配器,它将使用toString()
获取项目的名称。您可以使用(MyListItem)adapter.getItem(position)
获取项目数据。Usually you use a string array or list as data for an array list and the adapter method
getItem(position)
will return the corresponding string.But you can use any object array or list as input and so pass any data as list item. For example:
You can pass an array of
MyListItem
to the array adapter and it will usetoString()
to get the names for the items. You can get the item data with(MyListItem) adapter.getItem(position)
.关于支持过滤的列表适配器的说明。将
onItemClick()
提供的位置值与关联数组的索引在逻辑上关联起来很容易。但是,这样做会在过滤列表时出现问题。恰当的例子:过滤的 SimpleAdapter。未经过滤的
onItemClick()
提供 ListView 中项目的位置以及与 ListView 关联的数组中项目的位置。过滤后,onItemClick
提供了显示列表中项目的位置,但它不再与关联数组中项目的索引相匹配。但是,getItemAtPosition()
使用位置值从关联数组中检索正确的项目。getItemAtPosition()
也在 CursorAdapter 中提供正确的记录。A note about list adapters that support filtering. It is easy to logically relate the position value provided by
onItemClick()
with the index of an associated array. However, doing so causes problems when the list is filtered.Case in point: A filtered SimpleAdapter. Unfiltered,
onItemClick()
provides the position of the item in a ListView as well as the position of item in an array associated with a ListView. After filtering,onItemClick
provides the position of the item in the displayed list, but it no longer matches the index of the item in the associated array.getItemAtPosition()
, however, uses the position value to retrieve the correct item from the associated array.getItemAtPosition()
provides the correct record in a CursorAdapter as well.