patternjavaCritical
RecyclerView onClick
Viewed 0 times
recyclerviewonclickstackoverflow
Problem
Has anyone using
I thought of setting a listener to each of the layouts for each item but that seems a little too much hassle
I'm sure there is a way for the
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 hassle
I'm sure there is a way for the
RecyclerView to listen for the onClick event but I can't quite figure it out.Solution
As the API's have radically changed, It wouldn't surprise me if you were to create an
The
OnClickListener for each item. It isn't that much of a hassle though. In your implementation of RecyclerView.Adapter, 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);
}The
onClick method:@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();
}Code Snippets
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);
}@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();
}Context
Stack Overflow Q#24471109, score: 525
Revisions (0)
No revisions yet.