java - 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.
解决方案
您需要在方法中更新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);
}
}
推荐阅读
- swift - 在 swift ios 中出现错误 zipfail 错误
- javascript - 在 Grunt 中复制特定目录名称格式下的所有文件?
- java - 我的 java 依赖服务器似乎正在运行,但我无法在浏览器中以 localhost 的身份打开它
- html - 在角度组件中加载外部 html
- r - 如何使用 ggraph 正确绘制箭头
- javascript - 在 nodemailer 电子邮件中发送 html
- android - 将带有 proguard 的 Android 项目迁移到 R8,缺少 rt.java 文件,Android Studio 4.2
- powershell - 防止 Jenkins 由于来自 Jira API 的 400 响应而过早地导致构建失败
- azure - 无法在 arm 模板中为 Microsoft.Resources/deploymentScripts 使用 concat 解析参数
- hive - 如何从蜂巢外部表的基本路径中摄取德鲁伊中的兽人?