2

カスタムListViewを使用しています。正常に動作しています。このListViewを使用して、既読メッセージと未読メッセージを区別しています。未読メッセージの場合は0、既読メッセージの場合は1であるメッセージ既読IDを取得します。私の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つのアイテムの後に位置を繰り返すので、私の状態は機能しません。私はこれをたくさん検索していますが、私はそれを取得していません。私を助けてください 。前もって感謝します!よろしくディーパンカー

4

1 に答える 1

0

コードでは、「読み取り」状態(if / elseの最初のセクション)の場合に色を明示的に設定しません。

これは、ビューがリサイクルされ、以前に「未読」アイテムに使用されていた場合、色は同じままであることを意味します。

最初の色がわからないため、どちらの場合も、どちらの色が必要かを明示的に指定する必要があります。

于 2012-11-06T14:03:50.270 に答える