Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
643 views
in Technique[技术] by (71.8m points)

android - ListView.getItemAtPosition(i) equivalent in RecyclerView?

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...