i want to make app with json api and WordPress as backend. i can fetch the posts and it works fine untill first page, when i click on each post i can see the post detail as well, but on next page's post , click doesn't work and app crashes, the error i got is this:
 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.punjabidharti.myapplication/com.punjabidharti.myapplication.PostDetails}: java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
this is the adapter...
 private ArrayList<Model> dataset;
private Context mContext;
int total_types;
public RecyclerViewAdapter(ArrayList<Model> mlist, Context context) {
    this.dataset = mlist;
    this.mContext = context;
}
public static class ImageTypeViewHolder extends RecyclerView.ViewHolder {
       TextView title, subtitle;
       ImageView imageView;
       public ImageTypeViewHolder (View itemView) {
           super(itemView);
           this.title = (TextView) itemView.findViewById(R.id.title);
           this.subtitle = (TextView) itemView.findViewById(R.id.subtitle);
           this.imageView = (ImageView) itemView.findViewById(R.id.icon);
       }
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.postdetails, parent, false);
    return new ImageTypeViewHolder(view);
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
    final Model object = dataset.get(position);
    ( (ImageTypeViewHolder) holder).title.setText(object.title);
    ( (ImageTypeViewHolder) holder).subtitle.setText(object.subtitle);
    ( (ImageTypeViewHolder) holder).title.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent (mContext, PostDetails.class);
            intent.putExtra ("itemPosition", position);
            mContext.startActivity(intent);
        }
    });
    ( (ImageTypeViewHolder) holder).subtitle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent (mContext, PostDetails.class);
            intent.putExtra ("itemPosition", position);
            mContext.startActivity(intent);
        }
    });
}
@Override
public int getItemViewType(int position) {
    return position;
}
@Override
public long getItemId(int position) {
    return position;
}
@Override
public int getItemCount() {
    return dataset.size();
}
and this is how i load next page on scroll..
 recyclerView.setOnScrollListener(new EndlessRecyclerOnScrollListener(mLayoutManager) {
        @Override
        public void onLoadMore(int current_page) {
            // do something...
            yourURL = "https://punjabidharti.com/wp-json/wp/v2/posts/?categories=4514&per_page=10&page=2";
           
            getRetrofit();
            
        }
    });
and this is how i fetch posts via retrofit..
 public void getRetrofit(){
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(baseURL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    RetrofitArrayApi service = retrofit.create(RetrofitArrayApi.class);
    String yourURl = yourURL.replace(baseURL,"");
    Call<List<WPPost>>  call = service.getPostInfo( yourURl);
    call.enqueue(new Callback<List<WPPost>>() {
        @Override
        public void onResponse(Call<List<WPPost>> call, Response<List<WPPost>> response) {
            Log.e("mainactivyt", " response "+ response.body());
            mListPost = response.body();
            progressBar.setVisibility(View.GONE);
            if (response.body() != null) {
                for (int i = 0; i < response.body().size(); i++) {
                    Log.e("main ", " title " + response.body().get(i).getTitle().getRendered() + " " +
                            response.body().get(i).getId());
                    String tempdetails = response.body().get(i).getExcerpt().getRendered().toString();
                    tempdetails = tempdetails.replace("<p>", "");
                    tempdetails = tempdetails.replace("</p>", "");
                    tempdetails = tempdetails.replace("[…]", "");
                    list.add(new Model(Model.IMAGE_TYPE, response.body().get(i).getTitle().getRendered(),
                            tempdetails,
                            response.body().get(i).getLinks().getWpFeaturedmedia().get(0).getHref()));
                }
                progressBar.setVisibility(View.GONE);
            } else {
                progressBar.setVisibility(View.GONE);
            }
            adapter.notifyDataSetChanged();
        }
        @Override
        public void onFailure(Call<List<WPPost>> call, Throwable t) {
        }
    });
 
     
    