无法以编程方式设置 ExpandableListView children 的背景

Can't set the background of ExpandableListView's children programmatically

我有一个 ExpandableListView,我希望每个 child 显示不同的背景,具体取决于组和 child 位置。到目前为止,我是在 @Override getChildView

中从适配器 activity 进行操作

这是我的代码示例

        @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) 组 parent 时,children 的颜色与第一个 (#0) ) 组。

这个开关框架运行良好,当然,“@color”中的所有颜色都彼此不同。 有什么提示吗?

您在创建视图时设置了背景颜色。由于 listviews 回收视图,因此当视图被重新使用时颜色不会改变。