Кликабельная ImageButton в RecyclerView - PullRequest
0 голосов
/ 28 января 2020

У меня есть кнопка ImageButton, такая как этот значок enter image description here. Я хочу, чтобы когда я нажимал на него, он был похож на enter image description here, а когда я нажимал снова, это было бы похоже на рисунок 1. Что мне добавить в код? Эти кнопки изображения находятся в RecyclerView.

Ответы [ 3 ]

1 голос
/ 28 января 2020

внутри 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 голосов
/ 28 января 2020

Да, вам нужно добавить кнопку внутри элемента просмотра вашего переработчика и добавить один флаг в класс вашей модели. Итак, когда вы нажимаете в первый раз, меняете изображение на второе (заполненное сердце) и устанавливаете флаг как true, а когда нажимаете второй раз go для вашего идентичного кода изображения.

Итак, ваша структура кода будет выглядеть следующим образом:

Ваша модель класс

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

Надеюсь, это поможет вам!

Спасибо.

0 голосов
/ 28 января 2020

Попробуйте это:

//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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...