我试图为GridView上的选定项目提供背景颜色,并使用以下代码成功完成 -
gv.setOnItemClickListener(new OnItemClickListener() { // gv is object of GridView
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
gv.getChildAt(arg2).setBackgroundColor(Color.rgb(125, 125, 125));
}
});
现在我想在下次点击每个项目时删除给定的背景颜色。我该怎么做 ?此外,再次单击时,应显示背景颜色,并在下次单击时应删除背景颜色。
答案 0 :(得分:4)
您可以检查当前的颜色背景,然后执行一些条件操作以相应地更新视图。
gv.setOnItemClickListener(new OnItemClickListener() { // gv is object of GridView
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
View view = gv.getChildAt(arg2);
int desiredBackgroundColor = android.graphics.Color.rgb(125, 125, 125);
ColorDrawable viewColor = (ColorDrawable) view.getBackground();
if(viewColor == null) {
view.setBackgroundColor(desiredBackgroundColor);
return;
}
int currentColorId = viewColor.getColor();
if(currentColorId == desiredBackgroundColor) {
view.setBackgroundColor(Color.TRANSPARENT);
} else {
view.setBackgroundColor(desiredBackgroundColor);
}
}
});