我的getView()位置在自定义列表视图中重复?

时间:2012-11-06 13:47:16

标签: android android-listview custom-lists

我正在使用自定义ListView。它工作正常。我正在使用 ListView来区分Read&未读消息我接收消息读取ID ,对于未读消息& 1用于阅读消息。 我的getView()代码如下:---

public View getView(int position, View convertView, ViewGroup parent) 
{
    ViewHolder holder;
    if(convertView==null)
    {
        convertView=mInflater.inflate(R.layout.custom_home_list, null);
        holder=new ViewHolder();
        holder.address=(TextView)convertView.findViewById(R.id.person_name);
        holder.body=(TextView)convertView.findViewById(R.id.full_msg);
        holder.date=(TextView)convertView.findViewById(R.id.msg_time);
        convertView.setTag(holder);
    }else
    {
        holder=(ViewHolder)convertView.getTag();
    }
    int size=mArrList.size();
    if ((mArrList != null) || size > 0) 
    {
        if(mArrList.get(position).read.equalsIgnoreCase("1")){
        holder.address.setText(mArrList.get(position).address);
        holder.body.setText(mArrList.get(position).body);
        holder.date.setText(mArrList.get(position).date);
        }else{
            holder.address.setText(mArrList.get(position).address);
            holder.body.setText(mArrList.get(position).body);
            holder.body.setTextColor(mArrList.get(position).color);
            holder.date.setText(mArrList.get(position).date);
        }
    }
    return convertView;
}

这里我使用这个条件来区分: -

 if(mArrList.get(position).read.equalsIgnoreCase("1")){
   }

但是位置重复5项后所以我的情况不起作用。 我有很多搜索,但我没有得到它。 请帮我 。 提前致谢! 关心Deepanker

1 个答案:

答案 0 :(得分:0)

在代码中,如果处于“读取”状态(if / else的第一部分),则不会明确设置颜色。

这意味着如果您的视图已被回收并且以前用于“未读”项目,那么颜色将保持不变。

你需要在两种情况下明确地说出你想要的颜色,因为你不知道最初的颜色是什么。