我如何实现“喜欢”按钮?
问题描述:
我需要执行一个类似的按钮,我找的逻辑是,当你点击,颜色改变按钮,当你再次点击,你又具有相同的颜色我如何实现“喜欢”按钮?
我用这个
// LIKE
viewHolder.shakaLike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(viewHolder.shakaLike.isChecked()) {
Drawable myLike = getResources().getDrawable(R.drawable.nuevo_arrow_verde);
viewHolder.shakaLike.setBackgroundDrawable(myLike);
Drawable myLikeM = getResources().getDrawable(R.drawable.middleblack);
viewHolder.middleFinger.setBackgroundDrawable(myLikeM);
onLikeClick(model.getPostId());
}else if (!viewHolder.shakaLike.isChecked()){
Drawable m = getResources().getDrawable(R.drawable.nuevo_arrow_blanco);
viewHolder.shakaLike.setBackgroundDrawable(m);
}
}
});
但没有作品 有什么建议吗?
答
您需要确保您的方法反转了您在if检查中使用的布尔值。所以如果它不是已经被喜欢(喜欢= false),那么设置喜欢等于true,因为现在它被喜欢,并且将箭头设置为绿色背景。
viewHolder.shakaLike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!liked) {
liked = true; //because it wasn't liked(default state at start), but it was clicked to make it liked
viewHolder.middleFinger.setBackgroundDrawable(green);
} else if (liked){
liked = false; //because it was liked and was clicked to unlike
viewHolder.shakaLike.setBackgroundDrawable(white);
}
}
});
答
尝试像
Drawable green = getResources().getDrawable(R.drawable.nuevo_arrow_verde);
Drawable white = getResources().getDrawable(R.drawable.nuevo_arrow_blanco);
boolean liked = false;
viewHolder.shakaLike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clicked = !clicked;
if(liked) {
viewHolder.middleFinger.setBackgroundDrawable(green);
} else if (!viewHolder.shakaLike.isChecked()){
viewHolder.shakaLike.setBackgroundDrawable(white);
}
}
});
我如何能在一个setOnClickLisenter实现这个() – TheQuestionerXxx
初始化变量作为一个成员变量中,OnClickListener之外。然后得到你的buttonView的引用。下一步应用buttonView.setOnClickListener(new OnClickListener){public void onClick(View v){// if if statements goes here}} – rznazn
我redid原来的帖子。帮助更多吗?您可以使用“喜欢”作为活动的成员变量或作为共享首选项,它将使用关闭和重新打开应用程序之间的最后一个值。 – rznazn