2013-02-28 170 views
0

Scenario-的Android膨脹以特定的順序

itemnaem A 
itemnaem A 
itemnaem B 
itemnaem B 
itemnaem B 
itemnaem C 
. 
. 
. 
itemnaem c 

我有一個包含50items一個ArrayList的列表視圖。 這50個項目中的10個屬於A類,20個屬於B類,其餘屬於C類。

我想膨脹一個列表視圖,其中所有類型A的項目先來後跟類型B,然後鍵入C.

從數組列表,我能夠單獨項到3個不同的表A,B & C.

但面對的順序顯示它們問題即時通訊。

if(aList!=null && aList.size()>0 && countA!=0){ 
       holder.txt.setText(aList.get(position));  
       holder.img.setImageResource(R.drawable.icnA); 
        countA--;   
      } 
      else { 
         if(countA==0 && bList!=null && bList.size()>0 && countB!=0){       
         holder.txt.setText(bList.get(position-aList.size())); 
         holder.img.setImageResource(R.drawable.icnB); 
         countB--; 
         } 
        else{ 
         if(countA==0 && countB==0 && arr!=null && arr.size()>0){ 
           holder.txt.setText(c.get(position-aList.size()-bList.size())); 
           } 
        } 
      } 

countA是A countB列表大小爲B

在適配器的利用getCount方法列表大小我已經使用

public int getCount() { 
     return c.size()+AList.size()+BList.size(); 

    } 

問題爲列表和b列表它工作正常,但在C列表中它給出了一個索引超出約束例外

+0

我在代碼中看不到任何c-list ... – 2013-02-28 11:34:26

+0

我會將這些項目分成3個獨立的映射,然後添加到HashMap以保持順序。 – 2013-02-28 11:43:42

回答

0

我想我已經找到了一些完全wha你需要。您需要在我向您展示的這個特定示例中爲sectionItem和EntryItem實現單獨的適配器。

假設你知道如何處理適配器和listItems中(定製與自己的item.xml),this is a full fledged tutorial for how to make sections and entries.(Solution #2)

在本教程中,代碼以XML佈局也給出了,但你可以讓自己的自定義佈局該部分和入門項目。它非常簡單直接。

,使其脫落這樣的: enter image description here

+0

我不想做章節。實際上列表C是列表A和B的超集。如果列表不包含任何項目,那麼列表B會先到達 – Ciff 2013-02-28 11:48:46

+0

如果您向我們展示您嘗試的圖片會更好達到目標。 – Nezam 2013-02-28 11:51:13

0

找到了解決辦法終於.....

創建linekedHashSet d

D.addAll(a); 
D.addAll(b); 
D.addAll(c); 

的ArrayListË

E.addAll(D); 

並用d來誇大名單rder is maintained :)