ListView.getItemAtPosition(i)在RecyclerView中等效?

时间:2015-03-17 18:36:50

标签: android android-listview android-recyclerview android-cursoradapter recycler-adapter

我正在从由CursorAdapter支持的ListView迁移到由shywim的CursorRecyclerAdapter支持的RecyclerView。

我无法迁移用于返回游标对象的此部分:

(MyCursor)mListView.getItemAtPosition(i)

如何在RecyclerView内的特定位置访问光标?感谢。

1 个答案:

答案 0 :(得分:1)

不幸的是,它不是RecyclerView的一部分。为了克服它,我定义了一个接口:

  public interface OnItemClickListener {
        public void onItemClick(View view, int position);
  }

ViewHolder实现View.OnClickListener,其构造函数接受一个实现OnItemClickListener接口的对象:

 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());
        }
    }

单击该行时,我会通过单击视图及其位置

的侦听器前进