RecyclerView getAdapterPosition()无法正常工作:首次点击时返回正确的位置,第二次点击时返回-1

时间:2015-10-23 23:40:55

标签: java android android-recyclerview

我正在从Recylerview中删除项目。我在ViewHolder中实现了一个View.OnClickListener。然后在视图上使用setOnClickListener(),我将从onClick方法中删除行。

当我第一次删除项目时单击视图时,在第二次单击时我得到一个越界异常,因为getAdapterPosition()方法返回-1。

我的实施:

 public ItemViewHolder(View itemView) {

imageView.setOnClickListener(this);

}

@Override
        public void onClick(View v) {
           Log.v("clicker", "position is " + getAdapterPosition()); //returns correct index on first deletion and -1 on the second
              mItems.remove(getAdapterPosition);
        notifyItemRemoved(getAdapterPosition);
    }

注意:

奇怪的是,使用已弃用的getPosition()将返回不正确的索引位置,但它会删除Recylcerview中的每个项目,直到最后一个项目被保留,其中当单击最后一个项目时,它会因为out而崩溃边界索引问题。

告诉我你是否需要更多代码。

提前致谢。

0 个答案:

没有答案