Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >安卓自定义ListView文本颜色不变

安卓自定义ListView文本颜色不变
EN

Stack Overflow用户
提问于 2013-12-18 07:38:58
回答 2查看 433关注 0票数 0

我正在尝试根据一些条件改变文本视图的颜色。我正在使用Amulya Khare Android set listItem background colour from String Array给出的解决方案。所以现在我已经根据我的要求修改了这段代码。

我的代码如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyAdapter extends ArrayAdapter<String> {

Context context;
int layoutResourceId;
String data[] = null;
String color[] = null;

public MyAdapter(Context context, int layoutResourceId, String[] data,
        String[] color) {
    super(context, layoutResourceId, data);
    this.layoutResourceId = layoutResourceId;
    this.context = context;
    this.data = data;
    this.color = color;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    StringHolder holder = null;

    if (row == null) {
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);

        holder = new StringHolder();
        holder.txtTitle = (TextView) row.findViewById(R.id.text1);
        row.setTag(holder);
    } else {
        holder = (StringHolder) row.getTag();
    }

    holder.txtTitle.setText(data[position]);
    // row.setBackgroundColor(Color.parseColor(color[position]));
    // holder.txtTitle.setTextColor(Color.parseColor(color[position]));

    if (Code.days < 2) {
        holder.txtTitle.setTextColor(Color.RED);
    }
    if (Code.days < 5) {
        holder.txtTitle.setTextColor(Color.YELLOW);
    }
    if (Code.days > 8) {
        holder.txtTitle.setTextColor(Color.GREEN);
    }
    return row;
}

static class StringHolder {
    TextView txtTitle;
}
}

我试图做的是,如果天数小于2,则文本颜色应为红色,如果小于5,则文本颜色应为黄色,依此类推。但是我在text-view中只能看到黄色的文本。

另一个问题是,当我从list-view中删除任何数据时,所有数据的颜色都会变为默认颜色,比如黑色。

那么如何解决这个问题呢?提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-12-18 07:40:37

您应该使用如下条件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (Code.days < 2) {
    holder.txtTitle.setTextColor(Color.RED);
}
else if (Code.days < 5) {
    holder.txtTitle.setTextColor(Color.YELLOW);
}
else if (Code.days > 8) {
    holder.txtTitle.setTextColor(Color.GREEN);
}
票数 1
EN

Stack Overflow用户

发布于 2013-12-18 07:42:35

尝尝这个

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 if (Code.days<2) 
 {
   holder.txtTitle.setTextColor(Color.RED);
 }
 else if (Code.days < 5)  
 {
      holder.txtTitle.setTextColor(Color.YELLOW);
 }
 else if (Code.days > 8) 
 {
   holder.txtTitle.setTextColor(Color.GREEN);
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20652209

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文