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

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

谢谢!

  • 如何将项添加到Spinner的ArrayAdapter?
  • RecyclerView项目没有变化
  • android viewpager更改适配器
  • Android:notifyDataSetChanged(); 不工作
  • android listviews:页眉和页脚视图
  • 在PagerAdapter中实现循环滚动
  • 什么是Adapter.getItem()?
  • 是否有可能从Android中的适配器引用ListView?
  • 使用

     setBackgroundResource(R.color.rojo); 

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

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

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

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

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

    或者通过

     setBackgroundResource(R.color.)