滚动 RecyclerView 后点击无效

问题描述

我是应用程序开发人员的新手,想使用 json api 和 wordpress 作为后端制作应用程序。我可以获取帖子并且它工作正常,直到前 10 个帖子,当我单击每个帖子时,我也可以看到帖子详细信息,但是在第 11 个帖子或滚动到下一页时,单击不起作用并且应用程序崩溃,我得到的错误是这样的:

java.lang.indexoutofboundsexception: Index: 10,Size: 10

我在谷歌上搜索了很多,但没有得到任何解决方案..

这是我加载更多帖子的代码

 recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

        @Override
        public void onScrollStateChanged(RecyclerView recyclerView,int newState) {
            super.onScrollStateChanged(recyclerView,newState);
            if (newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
                isScrolling = true;

            }
        }

        @Override
        public void onScrolled(RecyclerView recyclerView,int dx,int dy) {
            super.onScrolled(recyclerView,dx,dy);
            currentItems = mLayoutManager.getChildCount();
            totalItems = mLayoutManager.getItemCount();
            scrolledItems = mLayoutManager.findFirstVisibleItemPosition();

            if (isScrolling = (currentItems + scrolledItems == totalItems)) {
                isScrolling = false;
                yourURL = "https://punjabidharti.com/wp-json/wp/v2/posts/?categories=4514&per_page=10" + "&page=" + pageNo++;

                progressBar.setVisibility(View.VISIBLE);
                if (mListPost != null) {
                    getRetrofit();

                } else {

                    progressBar.setVisibility(View.GONE);
                }

            }

        }
    });

这是获取帖子的代码..

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

                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("[&hellip;]","");
                    list.add(new Model(Model.IMAGE_TYPE,response.body().get(i).getTitle().getRendered(),tempdetails,response.body().get(i).getLinks().getWpFeaturedmedia().get(0).getHref()));
                }


            adapter.notifyDataSetChanged();
        }
        @Override
        public void onFailure(Call<List<WPPost>> call,Throwable t) {
        }
    });

这是adapter中的onclick方法

private ArrayList<Model> dataset;
    private Context mContext;

  
    public RecyclerViewAdapter(ArrayList<Model> mlist,Context context) {
        this.dataset = mlist;
        this.mContext = context;

    }

     @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,position);
                mContext.startActivity(intent);
            }
        });

@Override
    public int getItemCount() {
        return dataset.size();
    }



    }

请帮忙....

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...