簡體   English   中英

RecyclerView Adapter OnClick參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM