Reputation: 3522
I'm migrating from a ListView backed by a CursorAdapter, to a RecyclerView backed by shywim's CursorRecyclerAdapter.
I'm having trouble migrating this part that used to return a cursor object:
(MyCursor)mListView.getItemAtPosition(i)
How to get access to cursor at specific position inside RecyclerView? Thanks.
Upvotes: 0
Views: 3031
Reputation: 157457
Unfortunately it is not part of the RecyclerView. To overcome it I define an interface:
public interface OnItemClickListener {
public void onItemClick(View view, int position);
}
The ViewHolder implements the View.OnClickListener, and its constructor takes an object that implements my OnItemClickListener interface:
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private OnItemClickListener mListener;
public ViewHolder(View itemView) {
super(itemView);
itemView.setOnClickListener(this);
}
public ViewHolder(View itemView, OnItemClickListener listener) {
this(itemView);
mListener = listener;
}
@Override
public void onClick(View v) {
if (mListener != null) {
mListener.onItemClick(v, getPosition());
}
}
When you click on the row, I forward trough the listener the view clicked and its position
Upvotes: 2