首页 > 解决方案 > Create a "like/unlike" functionality for ImageView

问题描述

I would like to create a like/unlike functionality like Facebook and 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" />

Here is what I'm doing,

Boolean clicked = true;


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

The icon changes on first click, but on second click nothing happens.

Once a user presses on the ImageView a new image will replace, but if the user presses on the ImageView it will put the default image and so on back and forth.

标签: javaandroid

解决方案


您需要在方法中更新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);
    }
}

推荐阅读