如何在Android中的第二次单击中取消选择gridview中的项目?

时间:2014-09-14 14:25:00

标签: android gridview onclick onclicklistener

我试图为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));

        }
    });

现在我想在下次点击每个项目时删除给定的背景颜色。我该怎么做 ?此外,再次单击时,应显示背景颜色,并在下次单击时应删除背景颜色。

1 个答案:

答案 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);
        }

    }
});