为什么set setBackgroundColor在我的自定义listView中不起作用

我有一个自定义listView。 主要布局xml是这样的:

      

列表项XML就是这样

       

现在适配器是这样的:

 public class AdapterListaClientes extends BaseAdapter { private Cliente[] data; Context context; LayoutInflater layoutInflater; int itemSelected = -1; public void setSelected(int valor) { itemSelected = valor; } public AdapterListaClientes(Context context, ArrayList data) { this.data = data.toArray(new Cliente[0]); this.context = context; layoutInflater = LayoutInflater.from(context); } /*Mandatory things and so...*/ @Override public View getView(int position, View convertView, ViewGroup parent) { //All the things that we should put in this point.. I'm using the list14 example //HERE IS THE POLEMIC CODE if(position == itemSelected) convertView.setBackgroundColor(R.color.rojo); else convertView.setBackgroundColor(R.color.blanco); return convertView; 

}}

setBackgroundColor()方法不起作用。 我知道这样做是因为当我使用此方法时,按下列表视图项时,按下的项目的背景颜色将更改为默认颜色的不透明版本。

这个问题只发生在背景颜色,我可以改变其他一切没有问题…

谢谢!

Solutions Collecting From Web of "为什么set setBackgroundColor在我的自定义listView中不起作用"

使用

 setBackgroundResource(R.color.rojo); 

R.color.rojo是一种资源,它不是颜色..

您也可以使用setBackgroundColor(),但您需要了解期望对象不是资源ID。 所以你必须将资源转换为颜色对象,如下所示:

 setBackgroundColor(getResources().getColor(R.color.rojo)); 

要通过setBackgroundColor方法设置颜色,请执行以下操作: –

 setBackgroundColor(Color.parseColor("#e7eecc")); 

或者通过

 setBackgroundResource(R.color.)