Android SeparatedListAdapter - 如何使用自定义对象作为列表项?

时间:2011-09-23 17:23:46

标签: android

我有一个名为Employee的基本对象。您可以使用.getName().getId()检索员工的姓名和ID。

我想使用Jeff Sharkey的SeparatedListAdapter来构建一个分段列表。但是对于列表项,我需要使用我的自定义Employee对象作为项而不仅仅是字符串列表。

在包含的SeparatedListAdapter示例中,他使用ArrayAdapter<String>SimpleAdapter()来填充列表。

有没有办法使用自定义对象/类,比如我的Employee类?我需要这样做的原因是,当我点击列表中的项目时,我想要检索我用于该项目的实际Employee对象,然后检索员工的ID,以便我可以显示相关信息那个员工。

我对如何正确使用适配器感到有点困惑。我应该制作自己的适配器吗?

1 个答案:

答案 0 :(得分:3)

您需要实现自定义适配器。例如:

class CustomAdapter extends ArrayAdapter<Employee>

并在SeparatedListAdapter上使用它时:

CustomAdapter workersAdapter = new CustomAdapter(this, resourceID, workersList);
SeparatedListAdapter separated = new SeparatedListAdapter(this);
...
separated.addSection("Workers", workersAdapter);

修改 在CustomAdapter中重写getView方法以使用Employee信息创建视图。像这样:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view;
        if(convertView == null){
            view = convertView;
        }else
            view = mInflater.inflate(R.layout.your_row, null);

        Employee e = getItem(position);

        ((TextView)view.findViewById(R.id.textview_id)).setText(e.getId());
        //...

        return view;
    }