有没有一种简单的方法可以更改每第二行的颜色
我试过这个,但不幸的是它不起作用。
new SimpleAdapter(Activity.this,
listElements,
R.layout.list,
new String[]{"dt", CONTENT, TIMESTAMP},
new int[]{R.drawable.dt, R.id.content, R.id.timestamp}){
public View getView(int position, View v, ViewGroup parent) {
if (position%2 == 0) {
v.setBackgroundColor(920000);
} else {
}
return v;
}
}
);
您问题中的代码非常接近正确; 您有覆盖getView()
的正确想法,但您应该将其更改为如下所示:
public View getView(int position, View v, ViewGroup parent) {
v = super.getView(position, v, parent);
if (position%2 == 0) {
v.setBackgroundColor(0xff920000);
} else {
v.setBackgroundColor(/* default color */);
}
return v;
}
我所做的更改是:
- 包括一个
super.getView()
调用以获取默认行为以进行进一步修改 - 颜色值 int 文本以
0x
开头,以便将其解释为十六进制数 - 包括 Alpha 通道的
ff
值 - 还要设置
else
情况下的颜色,以避免视图回收出现问题
是的,创建一个像这个答案一样实现 getView 的自定义适配器。
如何使我的 ArrayAdapter 遵循 ViewHolder 模式?
您可以实现此代码。
if(position % 2 == 0){ //even number
//make a specific color
}
else if(position % 2 == 1){ //odd number
//make a specific color
}