Gia*_*uca 21 android onclick onclicklistener android-recyclerview
我正在尝试实现一种处理项目选择的方法RecyclerView.我个人不喜欢在通过手势的一些答案中建议的方式,我认为实施一个OnClickListener,如这里和这里所建议的那样,更清洁.
事实是......这种模式实际上并不起作用!我真的无法理解,为什么我OnClickListener.onClick是永远不会被调用.它有点像另一种方法拦截点击之前onClick可以处理它.
这是我的代码:
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView tvName;
ImageView star;
public ViewHolder(View itemView) {
super(itemView);
tvName = (TextView) itemView.findViewById(R.id.CHAT_ITEM_name);
star = (ImageView) itemView.findViewById(R.id.CHAT_ITEM_star);
Fonts.setTypeface(tvName, regular);
}
@Override
public void onClick(View view) {
int position = getLayoutPosition();
select(position);
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,能够访问整个数据集中被点击项目的位置非常重要,以便将其删除,所以做一些类似的事情indexOfChild也是不可接受的:我试过了,但是这个方法可以为你提供项目的位置在列表的可见部分中,因此变得list.remove(position)不可能.
mob*_*to7 51
查看更新的代码:您没有将onClickListener设置为ViewHolder中的任何视图.忘记点击监听器是一个可以理解的错误.
只需使用:
tvName.setOnClickListener(this);
star.setOnClickListener(this);
Run Code Online (Sandbox Code Playgroud)
您可以设置为两者或仅设置其中一个.您还可以简单地获取这两个视图的父布局,以便适配器中的整个项目本身可以单击.
itemView.setOnClickListener(this);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16870 次 |
| 最近记录: |