问题描述
有没有人使用 RecyclerView
找到一种方法来设置 onClickListener
到 RecyclerView
中的项目?我想为每个项目的每个布局设置一个侦听器,但这似乎有点麻烦我确定 RecyclerView
有一种方法可以监听 onClick
事件,但我不太明白.
Has anyone using RecyclerView
found a way to set an onClickListener
to items in the RecyclerView
?I thought of setting a listener to each of the layouts for each item but that seems a little too much hassleI'm sure there is a way for the RecyclerView
to listen for the onClick
event but I can't quite figure it out.
推荐答案
由于 API 发生了根本性的变化,如果您为每个项目创建一个 OnClickListener
,我不会感到惊讶.不过也没有那么麻烦.在您的 RecyclerView.Adapter
实现中,您应该:
As the API's have radically changed, It wouldn't surprise me if you were to create an OnClickListener
for each item. It isn't that much of a hassle though. In your implementation of RecyclerView.Adapter<MyViewHolder>
, you should have:
private final OnClickListener mOnClickListener = new MyOnClickListener();
@Override
public MyViewHolder onCreateViewHolder(final ViewGroup parent, final int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.myview, parent, false);
view.setOnClickListener(mOnClickListener);
return new MyViewHolder(view);
}
onClick
方法:
@Override
public void onClick(final View view) {
int itemPosition = mRecyclerView.getChildLayoutPosition(view);
String item = mList.get(itemPosition);
Toast.makeText(mContext, item, Toast.LENGTH_LONG).show();
}
这篇关于RecyclerView onClick的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!