正确的位置,当我尝试改变的一个位置,背景色列表视图中那么这两个位置的背景色之一,五个转变进不去列表视图
public class MyAdapter extends ArrayAdapter<Item> {
private final Context context;
private final ArrayList<Item> itemsArrayList;
static class ViewHolder {
TextView textday;
TextView text1;
TextView text2;
TextView text3;
}
public MyAdapter(Context context, ArrayList<Item> itemsArrayList) {
super(context, R.layout.list_row, itemsArrayList);
this.context = context;
this.itemsArrayList = itemsArrayList;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView==null){
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
convertView = inflater.inflate(R.layout.list_row, parent, false);
viewHolder = new ViewHolder();
viewHolder.textday = (TextView)convertView.findViewById(R.id.w1);
viewHolder.text1 = (TextView)convertView.findViewById(R.id.l1);
viewHolder.text2 = (TextView)convertView.findViewById(R.id.l2);
viewHolder.text3 = (TextView)convertView.findViewById(R.id.l3);
convertView.setTag(viewHolder);
}
else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.text1.setText(itemsArrayList.get(position).getTitle());
viewHolder.text2.setText(itemsArrayList.get(position).getDescription());
viewHolder.text3.setText(itemsArrayList.get(position).getthird());
viewHolder.textday.setText(itemsArrayList.get(position).getDay());
viewHolder = (ViewHolder)convertView.getTag();
if(position == 1)
{
convertView.setBackgroundColor(Color.parseColor("#00796b"));
viewHolder.text1.setTextColor(Color.parseColor("#ffffff"));
viewHolder.text2.setTextColor(Color.parseColor("#ffffff"));
viewHolder.text3.setTextColor(Color.parseColor("#ffffff"));
}
return convertView;
}
}
明显地'if(position == 1)'也应该有'else'部分。你应该在那里设置默认颜色。 – Selvin
是的,但问题出现,因为我用了viewholder。在使用viewholder之前它正在工作。我使用viewholder使列表视图顺利scrooling :) –