为ImageView创建“喜欢/不喜欢”功能

时间:2018-07-24 04:37:53

标签: java android

我想创建一个像Facebook和Instagram一样的功能。

<ImageView
   android:onClick="onLikeClick"
   android:focusable="true"
   android:clickable="true"
   android:background="@drawable/your_feed_post_holder_state_fire"
   android:id="@+id/imageView"
   android:layout_width="25dp"
   android:layout_height="25dp" />

这是我在做什么,

Boolean clicked = true;


public void onLikeClick(View view) {
    if (clicked) {
        imageView.setImageResource(R.drawable.like_selected);
    } else {
        imageView.setImageResource(R.drawable.like_unselected);
    }
}

该图标在第一次单击时会更改,但是在第二次单击时没有任何反应。

用户在ImageView上按下一次后,新图像将被替换,但是如果用户在ImageView上按下,则将放置默认图像,依此类推。

2 个答案:

答案 0 :(得分:3)

您需要在 boolean 方法中更新clicked onLikeClick()变量的值

public void onLikeClick(View view) {
    if (clicked) {
        imageView.setImageResource(R.drawable.like_selected);
        clicked = false;
    } else {
        clicked = true;
        imageView.setImageResource(R.drawable.like_unselected);
    }
}

答案 1 :(得分:2)

尝试这样:

Boolean clicked = true;
imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (clicked) {
                clicked = false;
                imageView.setImageResource(R.drawable.like_selected);
            } else {
                clicked = true;
                imageView.setImageResource(R.drawable.like_unselected);
            }
        }
    });