Android - ListFragment SimpleAdapter 改变颜色
Android - ListFragment SimpleAdapter change color
有没有一种简单的方法可以更改每隔一行的颜色
我试过了,但不幸的是它不起作用。
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 的自定义适配器。
How can I make my ArrayAdapter follow the ViewHolder pattern?
你可以实现这段代码。
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()
调用以获取默认行为以进行进一步修改
- 以
0x
开始您的颜色值 int 文字,以便将其解释为十六进制数
- 包括 Alpha 通道的
ff
值
- 同时在
else
案例中设置颜色以避免视图回收出现问题
有没有一种简单的方法可以更改每隔一行的颜色
我试过了,但不幸的是它不起作用。
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 的自定义适配器。
How can I make my ArrayAdapter follow the ViewHolder pattern?
你可以实现这段代码。
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()
调用以获取默认行为以进行进一步修改 - 以
0x
开始您的颜色值 int 文字,以便将其解释为十六进制数 - 包括 Alpha 通道的
ff
值 - 同时在
else
案例中设置颜色以避免视图回收出现问题