【发布时间】:2020-01-28 12:06:53
【问题描述】:
我有一个 ImageButton,例如这个图标 。我想要当我点击它时,它会像 this 并且当我再次点击它会像图 1。我应该在代码中添加什么?这些 ImageButtons 在 RecyclerView 中。
【问题讨论】:
标签: android imagebutton clickable
我有一个 ImageButton,例如这个图标 。我想要当我点击它时,它会像 this 并且当我再次点击它会像图 1。我应该在代码中添加什么?这些 ImageButtons 在 RecyclerView 中。
【问题讨论】:
标签: android imagebutton clickable
在 OnBindView() 内部。
boolean beforeClicked =false;
holder.imageView.setOnClickLisnter(new OnClickListner(){
if(!beforeClicked){
holder.imageView.setDrawableResource(R.layout.whiteHeart);
beforeClicked = true;
}
else{
holder.imageView.setDrawableResource(R.layout.blackHeart);
beforeClicked = false;
}
});
可能有一些拼写错误。你可以纠正它。
【讨论】:
试试这个:
//Define Global Variable
Boolean isCheck = true;
//On click of icon
isCheck =! isCheck // This will make boolean switch like On/Off
if(isCheck){
//Add your fill icon here
}else{
//Add your un-filled icon here
}
【讨论】:
是的,您需要在回收站视图项中添加按钮并将一个标志添加到您的模型类中因此,当您第一次单击时将图像更改为第二个(填充的心)并将标志设置为 true,然后单击第二次转到为您喜欢的图像代码。
所以,你的代码结构如下所示
你的模型类
public class model {
private boolean isFirstTime = false;
...
public boolean isFirstTime() {
return isFirstTime;
}
public void setFirstTime(boolean firstTime) {
isFirstTime = firstTime;
}
...
}
将以下代码添加到您的适配器
holder.yourView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!arrayList.get(position).getIsClick()) {
holder.yourImageView.setImageResource(getResources().getDrawable(R.drawable.secondImage));
arrayList.get(position).setIsClick(true);
} else {
//your like image code
}
notifyDataSetChanged();
}
});
希望对你有帮助!
谢谢。
【讨论】: