[英]RecyclerView Adapter OnClick parameter
我有一個RecyclerView適配器,它需要在每個項目內的多個視圖上實現OnClick偵聽器。 但是,OnClick偵聽器需要在偵聽器外部更改變量,但這是一個問題,因為它只能在OnClick偵聽器內部使用最終變量。 這是我實現OnClick偵聽器的代碼:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final boolean liked = false;
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// here I can only reference a final variable, but I need to change it
if (!liked){
liked = true;
}
}
});
}
我還嘗試將變量創建為ViewHolder類中的類變量,並將其用作holder.liked,但仍需要是最終變量。 我該如何解決這個問題?
嘗試改為在擴展的Viewholder上實現onClickListener:
private class LikeHolder extends RecyclerView.ViewHolder
implements View.OnClickListener {
private boolean mLiked = false;
public LikeHolder(LayoutInflater inflater, ViewGroup parent) {
super(inflater.inflate(R.layout.your_holder_layout, parent, false));
itemView.setOnClickListener(this);
...
}
@Override
public void onClick(View view) {
if (!mLiked){
mLiked = true;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.