如何填充已经在自定义适配器行内的列表视图。这是正确的方法吗?
我有一个组织对象。而且这个组织可以有更多的联系。
因此,我想创建一个布局,顶部是组织名称,然后是其下联系人的名称。
获取组织对象并将其放入我的自定义适配器并显示名称是没有问题的。但是如何在该行布局中填充列表视图?我并没有真正在自定义适配器中获得新的 ArrayAdapter 构造函数的上下文参数。它需要什么?
public class ContactAdapter extends ArrayAdapter<Organization> {
Context context;
int layoutResourceId;
ArrayList<Organization> data = null;
public ContactAdapter(Context context, int layoutResourceId, ArrayList<Organization> data) {
super(context, layoutResourceId, data);
this.context = context;
this.layoutResourceId = layoutResourceId;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
OrganizationHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent,false);
holder = new OrganizationHolder();
holder.tvOrgName = (TextView)row.findViewById(R.id.tvOrgName);
holder.LvContacts = (ListView)row.findViewById(R.id.LvContacts);
row.setTag(holder);
} else {
holder = (OrganizationHolder) row.getTag();
}
Organization org = data.get(position);
ArrayList<String> contacts = new ArrayList<String>();
for (Contact c : org.getContacts()) {
contacts.add(c.getName());
}
Log.i("List",""+contacts);
ArrayAdapter<String> contactsadapter = new ArrayAdapter<String>(??,android.R.layout.simple_list_item_1,contacts);
holder.LvContacts.setAdapter(contactsadapter);
holder.tvOrgName.setText(org.getName());
return row;
}
static class OrganizationHolder {
TextView tvOrgName;
ListView LvContacts;
Button btnDetails;
}