Android:如何根据具体情况更改行颜色?

时间:2014-08-16 12:00:47

标签: java android xml

每当我的应用程序打开时,我都会实现listview,我的想法是根据条件更改每一行的颜色,如下所示,这不是实际的代码,只是伪代码来显示我的想法:

 if condition = completed (row color is green)
 if condition = in Progress (row color is blue)
 if condition = pending (row color is red)

我如何在我的主要活动课程中实现这一点?请帮忙!

2 个答案:

答案 0 :(得分:1)

通常,当您创建自定义ListView项时,您必须创建自己的ListAdapter实现,例如扩展BaseAdapter类。在适配器内部,您将拥有项目数据,您可以将其与创建的视图绑定。

应使用自定义XML布局创建视图,其中包含更改颜色的元素,例如行背景。

将项目数据绑定到视图的适配器getView()方法可能如下所示。

public View getView(int position, View convertView, ViewGroup parent) {
    TextView textView;
    if (convertView == null) {  // if it's not recycled, initialize some attributes
        textView= new TextView(mContext);
        textView.setLayoutParams(new GridView.LayoutParams(85, 85));
        textView.setPadding(8, 8, 8, 8);
    } else {
        textView= (TextView) convertView;
    }

    textView.setBackgroundColor(blue);
    return textView;
}

这是基本的想法。如果您提供已经尝试过的代码,我将能够进一步为您提供支持。

答案 1 :(得分:0)

为了处理和测试每个条目,您需要某种自定义适配器 这是我使用的自定义数组适配器的一个很棒的教程。您可以在适配器的循环中测试和修改文本颜色。

Custom Array Adapter Tutorial