2015-12-13 45 views
0

我有一個ExpandableListView,我希望每個孩子都能顯示不同的背景,具體取決於組和子位置。到目前爲止,我從適配器活動做,在@Override getChildView無法通過編程設置ExpandableListView的孩子的背景

這裏是我的代碼示例現在

 @Override 
public View getChildView(int groupPosition, final int childPosition, 
         boolean isLastChild, View convertView, ViewGroup parent) { 

    final String childText = (String) getChild(groupPosition, childPosition); 



    if (convertView == null) { 
     LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = infalInflater.inflate(R.layout.list_item, null); 
    } 
switch (groupPosition) { 
     case 0: 
      switch(childPosition){ // 
       case 0: 
        convertView.setBackgroundResource(R.color.a1); 
        break; 
       case 1: 
        convertView.setBackgroundResource(R.color.a2); 
        break; 
       case 3: 
        convertView.setBackgroundResource(R.color.a3); 
        break; 
       case 4: 
        convertView.setBackgroundResource(R.color.a4); 
        break; 
      } 
      break; 
     case 1: 
      switch(childPosition){ 
       case 0: 
        convertView.setBackgroundResource(R.color.b1); 
        break; 
       case 1: 
        convertView.setBackgroundResource(R.color.b2); 
        break; 
       case 3: 
        convertView.setBackgroundResource(R.color.b3); 
        break; 
       case 4: 
        convertView.setBackgroundResource(R.color.b4); 
        break; 
      } 
      break; 
     case 2: 
      switch(childPosition) 
       case 0: 
        convertView.setBackgroundResource(R.color.c1); 
        break; 
       case 1: 
        convertView.setBackgroundResource(R.color.c2); 
        break; 
       case 3: 
        convertView.setBackgroundResource(R.color.c3); 
        break; 
       case 4: 
        convertView.setBackgroundResource(R.color.c4); 
        break; 
      } 
      break; 
    } 

,問題是,當我打開第二個(#1 ),第三(#2)組父母,孩子們像第一個(#0)組中那樣染色。

這個開關框架工作得很好,當然,「@color」中的所有顏色都不相同。 任何提示?

回答

1

您在創建視圖時設置了背景顏色。由於列表視圖回收視圖,當視圖重新使用時,顏色不會改變。

+0

Merci Guillaume。其實它是一個ExpListView。 你能預見這個問題的任何想法嗎? –

+0

更改「if(convertView == null)」塊之外的顏色 –

+0

Merci encore,Guillaume。我把所有的開關放在 之間,最終String childText =(String)getChild(groupPosition,childPosition); 和 if(convertView == null)LayoutInflater infalInflater =(LayoutInflater)this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = infalInflater.inflate(R.layout.list_item,null); 它崩潰。其實我早就想到了它。任何想法? –