单击图像后,将另一幅图像替换为另一幅图像,如果再次单击,则将图像带回android

时间:2019-03-11 10:25:52

标签: android

单击图像后,将一个图像替换为另一个图像,如果再次单击,则将前一个图像带回。 我已经为我的RecycleView编写了此代码,但无法正常工作。

这是我的代码:

private int i = 0;
        viewHolder.imageHeart.setOnClickListener(new View.OnClickListener () {
            @Override
            public void onClick(View v) {
                i++;

                if (i / 2 == 0) {
                    viewHolder.imageHeart.setImageResource(R.drawable.heart_red);
                }
                if (i / 2 == 1) {
                    viewHolder.imageHeart.setImageResource(R.drawable.heart);
                }
                Toast.makeText(context, String.valueOf(i), Toast.LENGTH_SHORT).show();
            }
        });

2 个答案:

答案 0 :(得分:1)

尝试其他

private int i = 0;
viewHolder.imageHeart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            i++;

            if (i/2 == 0){
                v.setImageResource(R.drawable.heart_red);
            } else {
                v.setImageResource(R.drawable.heart);
            }
            Toast.makeText(context, String.valueOf(i), Toast.LENGTH_SHORT).show();
        }
    });

答案 1 :(得分:1)

使用简单的boolean来尝试这种情况:

private boolean clicked = false;
viewHolder.imageHeart.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        if (clicked){
            viewHolder.imageHeart.setImageResource(R.drawable.heart_red);
            clicked = false;
        } else {
            viewHolder.imageHeart.setImageResource(R.drawable.heart);
            clicked = true;
        }

    }
});