Android - ListView和标签

Pet*_*ter 3 android android-widget

我一直在ListView对象上使用ArrayListAdapter.我想知道是否有一种简单的方法可以将每个listview项目的额外数据存储为标记对象.

Kni*_*edi 9

通常使用字符串数组或列表作为数组列表的数据,并且适配器方法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;
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以将数组传递MyListItem给数组适配器,它将toString()用于获取项目的名称.您可以使用获取项目数据(MyListItem) adapter.getItem(position).