RecyclerView中的Clickable ImageButton

问题描述 投票:0回答:3

我有一个图像按钮,例如此图标enter image description here。我想要当我单击它时,它会像这样enter image description here,而当我再次单击它时,它将像图1一样。我应该在代码中添加些什么?这些ImageButton位于RecyclerView中。

android imagebutton clickable
3个回答
1
投票

在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; 
      }
    });

可能会有拼写错误。您将要纠正。


0
投票

尝试一下:

//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
}

0
投票

是,您需要在回收者视图项中添加按钮,并在模型类中添加一个标志,因此,当您第一次单击图像时,将图像更改为第二个(实心),并将标志设置为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();
    }
});

我希望这可以帮助您!

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.