【发布时间】:2017-02-16 12:34:24
【问题描述】:
我有一个适配器从检索到的 json 填充我的 Listview。
我想根据位置更改某些单元格的颜色,即位置 1 蓝色位置 2 红色等。但是使用当前代码我得到了想要的效果,但是当我向下滚动列表时它会重复。我知道这是因为视图令人耳目一新,但不知道如何修复它。
public class ListAdapter extends BaseAdapter {
MainActivity main;
ListAdapter(MainActivity main) {
this.main = main;
}
@Override
public int getCount() {
return main.countries.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
static class ViewHolderItem {
TextView name;
TextView code;
TextView pts;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
ViewHolderItem holder = new ViewHolderItem();
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) main.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.cell, null);
holder.name = (TextView) convertView.findViewById(R.id.name);
holder.code = (TextView) convertView.findViewById(R.id.code);
holder.pts = (TextView) convertView.findViewById(R.id.pts);
convertView.setTag(holder);
}
else {
holder = (ViewHolderItem) convertView.getTag();
}
holder.name.setText(this.main.countries.get(position).name);
holder.code.setText(this.main.countries.get(position).code);
holder.pts.setText(this.main.countries.get(position).pts);
if (position == 1) {
holder.name.setBackgroundColor(Color.parseColor("#FFFFFF"));
}
return convertView;
}
}
【问题讨论】:
-
为 textview 背景提供所需颜色的 else 条件
-
谢谢,我试过了,但它仍然在整个列表中重复。
-
您可以创建一个列表大小的颜色列表,并按位置从 colorList 中获取您想要的颜色
标签: java android listview colors