我试图在ListView中添加subItems。 我的listView应该通过电子邮件组织项目及其子机构的机构,但是使用以下代码我只是添加了项目,如何在其上添加我的子项目?我尝试了很多东西,但它没有用。
List<Login> listEmails = JsonUtil.getAllEmails(json);
ArrayList<String> emails = new ArrayList<String>();
ArrayList<String> institutions = new ArrayList<String>();
for (Login loginObj : listEmails) {
emails.add(loginObj.getEmailAndress());
}
for (Login loginObj : listEmails) {
institutions.add(loginObj.getInstitution());
}
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, emails);
emailListView.setAdapter(adapter);
答案 0 :(得分:3)
您需要一个包含两个文本视图的自定义适配器,并在其getView()
方法中为每个文本视图设置适当的数据。
此外,现在您只向{} 1}数组传递适配器,您还需要一个不同的结构来包含emails
。
答案 1 :(得分:0)
正确的方法是为每个项目创建一个HashMap:查看下面的代码:
List<Login> listEmails = JsonUtil.getAllEmails(json);
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>(listEmails.size());
for (Login loginObj : listEmails) {
HashMap<String, String> item = new HashMap<String, String>();
item.put("email", loginObj.getEmailAndress());
item.put("institution", loginObj.getInstitution());
list.add(item);
}
String[] from = new String[] { "email", "institution" };
int[] to = new int[] { android.R.id.text1, android.R.id.text2 };
int nativeLayout = android.R.layout.two_line_list_item;
emailListView.setAdapter(new SimpleAdapter(this, list, nativeLayout , from, to));