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”中的所有颜色都不相同。 任何提示?
Merci Guillaume。其实它是一个ExpListView。 你能预见这个问题的任何想法吗? –
更改“if(convertView == null)”块之外的颜色 –
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); 它崩溃。其实我早就想到了它。任何想法? –