Android ListView上的背景颜色错误膨胀
因此,我有一个使用自定义适配器的Android ListView上的背景颜色错误膨胀,android,listview,listadapter,Android,Listview,Listadapter,因此,我有一个使用自定义适配器的ListView。我希望项目的背景色是红色或绿色,这取决于我使用getDBValue()从数据库中获取的值(这是有效的) 问题是,当活动第一次打开时,listview膨胀,所有listview项都有相同(不正确)的绿色背景色。当我开始滚动时,背景设置正确 当listview膨胀时,如何获得正确的背景颜色?我的程序在哪里“出错” 我已经对它进行了调试,dbValue正在返回正确的值 这是我的代码: public View getView(int position,
ListView
。我希望项目的背景色是红色或绿色,这取决于我使用getDBValue()从数据库中获取的值代码>(这是有效的)
问题是,当活动第一次打开时,listview膨胀,所有listview项都有相同(不正确)的绿色背景色。当我开始滚动时,背景设置正确
当listview膨胀时,如何获得正确的背景颜色?我的程序在哪里“出错”
我已经对它进行了调试,dbValue
正在返回正确的值
这是我的代码:
public View getView(int position, View convertView, ViewGroup parent) {
return createViewFromResource(position, convertView, parent, mResource);
}
private View createViewFromResource(int position, View convertView,
ViewGroup parent, int resource) {
View v;
if (convertView == null) {
// first time views are created
v = mInflater.inflate(resource, parent, false);
} else {
v = convertView;
}
String dbvalue = getDBValue();
if(!dbvalue.equals("me")){
v.setBackgroundColor(Color.argb(230, 255, 0x00, 0x00));
}else{
v.setBackgroundColor(Color.argb(230, 0x00, 255, 0x00));
}
setViewText((TextView) v, text);
return v;
}
我在我的应用程序中做了这件事
请对此进行提款,并在以下情况下申请:,
这里我分享了设置drawable的方法,检查一下
请在createViewFromResource
中调用此方法,这样就可以了
@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
private void setdrwable(Drawable drawable,View view)
{
if(Build.VERSION.SDK_INT>=16)
{
view.setBackground(drawable);
}
else
{
view.setBackgroundDrawable(drawable);
}
}
绿色是“其他”状态?如果是,可能dbvalue没有返回正确的值(在第一次构建视图时),这是我的想法,但在调试时,该值是正确的。