When use RecycleView , the getAdapterPosition()
always return -1.I don't know why.
My onCreateViewHolder
Codes are as follows :
public ViewHolder onCreateViewHolder(final ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item,parent,false);
final ViewHolder holder = new ViewHolder(view);
// add OnClickListener
holder.mFruitView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = holder.getAdapterPosition();
Fruit fruit = mFruitList.get(position);
Toast.makeText(v.getContext(),"You Click : " + fruit.getName(),Toast.LENGTH_SHORT).show();
}
});
return new ViewHolder(view);
}
And My ViewHolder Codes like this :
static class ViewHolder extends RecyclerView.ViewHolder{
View mFruitView;
ImageView fruitImage;
TextView fruitName;
public ViewHolder(View itemView) {
super(itemView);
mFruitView = itemView;
fruitImage = (ImageView) itemView.findViewById(R.id.iv_fruit);
fruitName = (TextView) itemView.findViewById(R.id.tv_fruit);
}
}
The Logs when error occurred are as follows :
java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1
Any help will be grateful