Android ListView 根据条件让某行变色
private class resultAdapter extends BaseAdapter{
private Context context = ResultCountActivity.this;
public resultAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
return tableItems==null?0:tableItems.size();
}
@Override
public Object getItem(int i) {
return tableItems.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@SuppressLint("ResourceAsColor")
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
ViewHolder mHolder;
TaskItem taskItem= (TaskItem) getItem(i);
if (convertView == null) {
mHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(context);
convertView = inflater.inflate(R.layout.table_item, null, true);
mHolder.p_name = (TextView) convertView.findViewById(R.id.p_name);
mHolder.p_no = (TextView) convertView.findViewById(R.id.p_no);
mHolder.p_num = (TextView) convertView.findViewById(R.id.p_num);
mHolder.s_name = (TextView) convertView.findViewById(R.id.s_name);
//
convertView.setTag(mHolder);
} else {
mHolder = (ViewHolder) convertView.getTag();
}
//if和else两种条件都要写上,不然会导致只有一种颜色
if(taskItem.getScanDiffer()!=0){
mHolder.p_name.setTextColor(Color.RED);
mHolder.p_no.setTextColor(Color.RED);
mHolder.p_num.setTextColor(Color.RED);
mHolder.s_name.setTextColor(Color.RED);
}else{
mHolder.p_name.setTextColor(context.getResources().getColor(R.color.black_alpha_128));
mHolder.p_no.setTextColor(context.getResources().getColor(R.color.black_alpha_128));
mHolder.p_num.setTextColor(context.getResources().getColor(R.color.black_alpha_128));
mHolder.s_name.setTextColor(context.getResources().getColor(R.color.black_alpha_128));
}
mHolder.p_name.setText(taskItem.getDescription());
mHolder.p_no.setText(taskItem.getEanCode());
mHolder.p_num.setText(taskItem.getScanNum()+"/"+taskItem.getInventory());
mHolder.s_name.setText(taskItem.getScanDiffer()+"");
return convertView;
}
class ViewHolder {
private TextView p_name;
private TextView p_no;
private TextView p_num;
private TextView s_name;
}
}
if和else两种条件都要写上,不然会导致只有一种颜色