我正在使用自定义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
答案 0 :(得分:0)
在代码中,如果处于“读取”状态(if / else的第一部分),则不会明确设置颜色。
这意味着如果您的视图已被回收并且以前用于“未读”项目,那么颜色将保持不变。
你需要在两种情况下明确地说出你想要的颜色,因为你不知道最初的颜色是什么。