gpt4 book ai didi

java - RecyclerView Adapter OnClick 参数

转载 作者:行者123 更新时间:2023-11-29 19:18:22 25 4
gpt4 key购买 nike

我有一个 RecyclerView 适配器,它需要在每个项目内的多个 View 上实现 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;
}
}

关于java - RecyclerView Adapter OnClick 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42937209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com