У меня есть recycliewiew of cardviews, и у каждого картона есть кнопка с большими пальцами (например).Работа с OnClick на элементе в элементе RecyclerView?
Мне бы хотелось, чтобы пользователь нажал кнопку большого пальца на определенной карте, они «любят» этот пост, анимируют кнопку и обрабатывает соответствующую логику.
Вот мой код до сих пор:
private class CardViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private CardView mCardView;
private TextView cardTitle, cardUsername;
private ImageView cardImage;
public CardViewHolder(View itemView){
super(itemView);
mCardView = (CardView) itemView.findViewById(R.id.cardview);
cardTitle = (TextView) itemView.findViewById(R.id.cardTitle);
cardUsername = (TextView) itemView.findViewById(R.id.cardUsername);
cardImage = (ImageView) itemView.findViewById(R.id.cardImage);
mLikeButton = (LikeButton) itemView.findViewById(R.id.thumb);
itemView.setOnClickListener(this);
mLikeButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == mLikeButton.getId()){
Toast.makeText(v.getContext(), "ITEM PRESSED = " + String.valueOf(getAdapterPosition()), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(v.getContext(), "ROW PRESSED = " + String.valueOf(getAdapterPosition()), Toast.LENGTH_SHORT).show();
Toast.makeText(v.getContext(), mRecipes[getAdapterPosition()].getRecipename().toString(), Toast.LENGTH_SHORT).show();
}
}
}
Когда пользователь нажимает на кнопку, как, это действительно показывает правильное положение адаптера в тосте, но это не живой, как это должно, и у меня нет никакой возможности установки анимации на нем. Обычно кнопка активируется при нажатии, но когда она находится в режиме recyclerview, она, похоже, не работает.
Я пытался сделать
(LikeButton) v.setLiked(true);
но бросок не похоже на работу. Я хочу иметь возможность получить прямую ссылку на конкретную кнопку в определенной строке recyclerview, чтобы я мог вызвать метод на ней. Это возможно?
Неужели это плохой способ настроить прослушиватель кликов на кнопку?
Установить на клик-слушателе в onBindViewHolder метод. –