简体   繁体   English

如何根据变量更改TextView(在listview中)的文本颜色?

[英]How to change a TextView's (inside a listview) text color according to a variable?

I am trying to do it in adapter like the following 我正在尝试在适配器中执行以下操作

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view;
        ZgrViewHolder holder;
        mInflater = LayoutInflater.from(mContext);
        QuestionObject questionObject = arrayList_.get(position);

        if(convertView == null) {
            convertView = mInflater.inflate(R.layout.zgr_listview_layout, parent, false);
            holder = new ZgrViewHolder();
            holder.questionTitle = (TextView)convertView.findViewById(R.id.questionTitle);
            holder.questionDate = (TextView)convertView.findViewById(R.id.questionDate);
            holder.questionContent = (TextView)convertView.findViewById(R.id.questionContent);
            holder.senderContact = (TextView)convertView.findViewById(R.id.questionSenderContact);
            holder.messageID = (TextView)convertView.findViewById(R.id.messageID);

            holder.questionTitle.setText(questionObject.mailTitle);
            holder.messageID.setText(String.valueOf(questionObject.messageID));
            holder.questionDate.setText(questionObject.Date_);
            holder.questionContent.setText(questionObject.mailContent);
            holder.senderContact.setText(questionObject.senderContact);

            if (questionObject.ReadState == 1){
                holder.questionTitle.setTextColor(Color.argb(100,100,100,100));
            }

            convertView.setTag(holder);
        } else {
            holder = (ZgrViewHolder)convertView.getTag();
        }
        return convertView;
    }

But when listview is complete, none of the textviews has the color I assign. 但是,当listview完成时,没有一个textview具有我指定的颜色。 I debug and ReadState variable is sometimes 1, but still nothing. 我调试并且ReadState变量有时为1,但仍然没有。

try this 尝试这个

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view;
    ZgrViewHolder holder;
    mInflater = LayoutInflater.from(mContext);
    QuestionObject questionObject = arrayList_.get(position);

    if(convertView == null) {
        convertView = mInflater.inflate(R.layout.zgr_listview_layout, parent, false);
        holder = new ZgrViewHolder();
        holder.questionTitle = (TextView)convertView.findViewById(R.id.questionTitle);
        holder.questionDate = (TextView)convertView.findViewById(R.id.questionDate);
        holder.questionContent = (TextView)convertView.findViewById(R.id.questionContent);
        holder.senderContact = (TextView)convertView.findViewById(R.id.questionSenderContact);
        holder.messageID = (TextView)convertView.findViewById(R.id.messageID);


        }

        convertView.setTag(holder);
    } else {
        holder = (ZgrViewHolder)convertView.getTag();
    }
        holder.questionTitle.setText(questionObject.mailTitle);
        holder.messageID.setText(String.valueOf(questionObject.messageID));
        holder.questionDate.setText(questionObject.Date_);
        holder.questionContent.setText(questionObject.mailContent);
        holder.senderContact.setText(questionObject.senderContact);

        if (questionObject.ReadState == 1){

        holder.questionTitle.setTextColor(Color.argb(100,100,100,100));
        return convertView;
}

请在这段代码之外分配textview颜色if(convertView == null){}谢谢并反馈我

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM