我一直在尝试为列表视图覆盖适配器中的getView()以设置布局内视图的属性:

public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    if (convertView == null)
        vi = inflater.inflate(R.layout.guest_list_row, null);

    TextView name = (TextView) vi.findViewById(R.id.GuestName);
    Button RSVPIndicator = (Button) vi.findViewById(R.id.RSVPState);

    Invites invite = data.get(position);

    name.setText(nameContact(invite.getUserID()));
    int RSVPState = invite.getAttending();

    if (RSVPState == 1) {
        RSVPIndicator.setBackgroundColor(color.GuestAccepted);

    }
    if (RSVPState == 0) {
        RSVPIndicator.setBackgroundColor(color.GuestDeclined);
    }

    return vi;
}


不幸的是,我在视图组件上调用的set方法似乎无济于事。 RSVPIndicator的背景颜色确实发生了变化,但是我指定的颜色没有变化。

我尝试了很多不同的值来设置视图,但是没有运气。我缺少什么琐碎的东西吗?

谢谢你的帮助。

最佳答案

也许您可以尝试以下方法:

if (RSVPState == 1) {
    RSVPIndicator.setBackgroundResource(R.color.GuestAccepted);
}
else if (RSVPState == 0) {
    RSVPIndicator.setBackgroundResource(R.color.GuestDeclined);
}

10-06 13:37