Android - ListView 和标签

发布于 2024-12-08 09:58:55 字数 83 浏览 1 评论 0原文

我一直在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

z祗昰~ 2024-12-15 09:58:55

通常,您使用字符串数组或列表作为数组列表的数据,适配器方法 getItem(position) 将返回相应的字符串。

但是您可以使用任何对象数组或列表作为输入,从而将任何数据作为列表项传递。例如:

class MyListItem {

    private int mId;
    private Object mData;
    private String mListItemName;

    public MyListItem(int id, Object data, String name) {
        mId = id;
        mData = data;
        mListItemName = name;
    }

    @Override
    public String toString() {
        return mListItemName;
    }
}

您可以将 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:

class MyListItem {

    private int mId;
    private Object mData;
    private String mListItemName;

    public MyListItem(int id, Object data, String name) {
        mId = id;
        mData = data;
        mListItemName = name;
    }

    @Override
    public String toString() {
        return mListItemName;
    }
}

You can pass an array of MyListItem to the array adapter and it will use toString() to get the names for the items. You can get the item data with (MyListItem) adapter.getItem(position).

请别遗忘我 2024-12-15 09:58:55

关于支持过滤的列表适配器的说明。将 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文