我有一个名为Employee
的基本对象。您可以使用.getName()
和.getId()
检索员工的姓名和ID。
我想使用Jeff Sharkey的SeparatedListAdapter来构建一个分段列表。但是对于列表项,我需要使用我的自定义Employee对象作为项而不仅仅是字符串列表。
在包含的SeparatedListAdapter示例中,他使用ArrayAdapter<String>
和SimpleAdapter()
来填充列表。
有没有办法使用自定义对象/类,比如我的Employee类?我需要这样做的原因是,当我点击列表中的项目时,我想要检索我用于该项目的实际Employee对象,然后检索员工的ID,以便我可以显示相关信息那个员工。
我对如何正确使用适配器感到有点困惑。我应该制作自己的适配器吗?
答案 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;
}