Android-ListFragment SimpleAdapter更改颜色
有没有一种简单的方法可以改变每一排的颜色 我试过这个,但不幸的是它不起作用Android-ListFragment SimpleAdapter更改颜色,android,colors,android-listfragment,simpleadapter,Android,Colors,Android Listfragment,Simpleadapter,有没有一种简单的方法可以改变每一排的颜色 我试过这个,但不幸的是它不起作用 new SimpleAdapter(Activity.this, listElements, R.layout.list, new String[]{"dt", CONTENT, TIMESTAMP},
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,就像这个答案一样 您可以实现此代码
if(position % 2 == 0){ //even number
//make a specific color
}
else if(position % 2 == 1){ //odd number
//make a specific color
}
你问题中的代码非常接近正确;覆盖
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 literal,以便将其解释为十六进制数0x
- 包括alpha通道的
值ff
- 另外,在
案例中设置颜色,以避免视图循环出现问题else