我有一個cardviews recyclerview,並且每個cardview有一個大拇指(like)按鈕。在RecyclerView元素中處理OnClick項目?
我喜歡這樣,當用戶點擊特定卡上的拇指按鈕時,他們「喜歡」該帖子,按鈕動畫和適當的邏輯被處理。
這是到目前爲止我的代碼:
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();
}
}
}
當用戶點擊等按鈕,它會顯示在祝酒正確的適配器的位置,但它並沒有動畫像它應該和我也沒辦法在其上設置動畫。通常,按鈕在單擊時動畫,但當它位於回收站視圖內時,它似乎不起作用。
我試圖做
(LikeButton) v.setLiked(true);
但劇組似乎沒有工作。我希望能夠獲得對recyclerview特定行中特定按鈕的直接引用,以便我可以調用它的方法。那可能嗎?
這是在按鈕上設置點擊監聽器的不好方法嗎?
在onBindViewHolder方法中的單擊監聽器上設置。 –