expandablelistview的组的动态背景颜色不起作用

时间:2011-12-01 11:07:37

标签: android android-layout expandablelistview

我试图在expandablelistview中为组设置动态背景。所以在我的listviewAdapter中,我有以下代码:

@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {

    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.elv_group, parent, false);
    }

    ((LinearLayout) convertView.findViewById(R.id.elv_group_root_layout))
            .setBackgroundColor(getBackgroundColor(groupPosition));

    return convertView;
}

public int getBackgroundColor(int groupPosition) {
    if (getGroup(groupPosition).getInput().size() != getGroup(groupPosition).getOutput().size()) {
        return R.color.attention_row;
    } else {
        return R.color.normal_row;
    }
}

如您所见,我尝试根据方法getBackgroundColor中的给定语句设置根布局背景颜色。

但我得到的是一个总是灰色背景的群组列表!谁能告诉我在这里做错了什么?似乎与android列表生命周期或缓存机制有某种问题。 在expandablelistview中是否存在更改组的linearLayout颜色的问题?是否可以突出显示特定群体?

1 个答案:

答案 0 :(得分:1)

convertView.setBackgroundResource(getBackgroundColor(groupPosition));

而不是

((LinearLayout) convertView.findViewById(R.id.elv_group_root_layout)).setBackgroundColor(getBackgroundColor(groupPosition));

救了我的命;) 感谢this post