我想创建一个像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上按下,则将放置默认图像,依此类推。
答案 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);
}
}
});