2013-03-22 35 views
1

加分項目,我想在我的ListView添加子項目。 我的ListView應該與電子郵件的項目和他們的子項的機構來組織,但與下面的代碼我剛纔添加的項目,我怎麼能添加上我的分項?我試過這麼多的事情,但它不工作。如何在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

通過子項目,你的意思是這樣[例A](HTTP://docs.xamarin的.com /樣品/移動樣本/ TablesLists /截圖/ Android設備/ SimpleListItem2.png)或[例子B](https://lh3.ggpht.com/__9PneCDHGgs/TJKOEOIl--I/AAAAAAAACt0/HI8ui6yN7JQ/s1600/sample_expandable_list_view_android。 PNG)? – Sam 2013-03-22 20:52:35

回答

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)); 
3

你需要有兩個textviews,並在其getView()方法設置適當的數據到每個textviews的自定義適配器。

此外,您現在只傳遞給您的適配器emails陣列,您需要一個不同的結構來包含institutions