选择Android GridView背景颜色

时间:2012-08-28 07:51:43

标签: android gridview

我创建了一个显示各种位图的GridView。我希望当用户选择选择一个单元格时,它的背景颜色会发生变化。这就是我在做的事情。我的ImageAdapter扩展BaseAdapter在其中有以下代码行getView函数

if(videoObjects.get(position).isSelected)
{
        gridView.setBackgroundColor(Color.BLUE);
}
else
{
        gridView.setBackgroundColor(Color.TRANSPARENT);
}

我的GridView有一个OnItemClickListener,它在onItemClick中有以下代码。

   userVideos.get(postion).isSelected=!userVideos.get(postion).isSelected;
    videoBitmapsAdapter.notifyDataSetChanged();

这应该切换布尔变量,然后我重绘适配器。但选择不起作用。

亲切的问候。

1 个答案:

答案 0 :(得分:2)

将选择器用作具有2种状态的背景可能更好:

<selector>
 <item state_selected="true" drawable="yourbg" />
 <item state_selected="false" drawable="otherbg" />
</selector>

然后在你的

 onItemClick(View v, ViewGroup parent, int position){
  if (this.previousSelectedView != null) this.previousSelectedView.setSelected(false);
  v.setSelected(true);
 }

这样,就没有必要使整个gridview无效。您必须保留对当前所选griditem的引用,以便在单击其他项目时取消选择它。

(此代码未经过测试)