gpt4 book ai didi

android - 回收项目点击问题,永远不会进入功能

转载 作者:行者123 更新时间:2023-11-30 01:41:05 26 4
gpt4 key购买 nike

我是 Android Material 设计的新手,想使用回收 View 而不是 ListView ,但在实现 OnClickListener 时遇到问题。我发现 RecyclerView.Adapter 与 ListView.Adapter 有点不同。首先,我在 onBindViewHolder 中实现了 OnClick 监听器,但它返回了错误的项目编号,并在删除一些内容后导致越界。

 @Override
public void onBindViewHolder(PersonViewHolder personViewHolder, int i) {
final int index = i ;
personViewHolder.cv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
... items.get(index).gettext();
}

所以我发现我应该在我的 ViewHolder 类中实现 OnClikListener 作为 link .

但在这种情况下永远不要插入 OnClick。

 public static class PersonViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

@Override
public void onClick(View v) {

Log.i("log","position="+getAdapterPosition());

}
}

public CardViewAdapter(List<MessageTO> persons) {
this.items = persons;
}


@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);

}

@Override
public PersonViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.deposite_card_view, viewGroup, false);
PersonViewHolder pvh = new PersonViewHolder(v);
return pvh;
}

@Override
public void onBindViewHolder(PersonViewHolder personViewHolder, int i) {
...
}

我还发现我应该在 onBindViewHolder 中全部初始化项目值,对吗?我很困惑。

最佳答案

首先您需要设置onclicklistener,如下所示。那么它应该可以工作。

公共(public)静态类 PersonViewHolder 扩展 RecyclerView.ViewHolder 实现 View.OnClickListener {

public ViewHolder(View itemView) {
super(itemView);
.
.
.
itemView.setOnClickListener(this);
}

@Override
public void onClick(View v) {

Log.i("log","position="+getAdapterPosition());

}

关于android - 回收项目点击问题,永远不会进入功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34494527/

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