gpt4 book ai didi

android - 仅单击一个时,RecyclerView 第一个和最后一个项目已更改

转载 作者:行者123 更新时间:2023-11-29 01:02:20 27 4
gpt4 key购买 nike

我正在使用 recyclerview 来显示可供选择的兴趣列表。单击第一项会使最后一项也被选中

选择第一项:

RecyclerView first item selected

最后一项也被选中:

RecyclerView last item selected

选择是用这段代码完成的:

@Override
public InterestViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
TextView v = (TextView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.interests_textview, parent, false);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView textView = (TextView) v;
if (textView.getCompoundDrawables()[2] == null) {
textView.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.checkmark, 0);
} else {
textView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
}
}
});
return new InterestViewHolder(v);
}

当点击最后一个项目时,第一个项目也被选中。谁知道是什么原因造成的?

最佳答案

您正在将布局扩展到 TextView 中。将其更改为 View v,它应该可以工作:

View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.interests_textview, parent, false);

您还需要使用 findViewByID() 才能从您的布局中获取正确的 TextView:

代替

TextView textView = (TextView) v;

这样做:

TextView textView = findViewById(<id of your textview in the layout>);

View 转换为 TextView 不是您想要的。

关于android - 仅单击一个时,RecyclerView 第一个和最后一个项目已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50203508/

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