如何将数组列表限制为 10 并在单击更多时显示接下来的 10 个项目

How to limit an array list to 10 and display next 10 items on click of more

我正在添加 arrayList 中的所有项目,现在我只想在我的回收站视图中显示 10 个项目,然后单击更多 10 个,依此类推。我想使用相同的 arrayList.

您可以在getCount()方法中自行处理。
您可以在适配器 class 中输入一个整数,然后每次单击更多按钮将其增加 1。

int num = 1;

点击更多按钮:

if((adapter.num)*10 < arrayList.size()) 
   adapter.num = adapter.num +1;

getCount()方法中:

 @Override
public int getCount() {
    if(num*10 > arrayList.size()){
        return arrayList.size();
    }else{
       return num*10; 
    }
}

那是不可能的,不依赖于 arrayList 仅依赖于数据源,例如数据库示例:

您将显示来自 table 用户 的数据: user_id , user_name , To请求前 10

SQL 声明

Select * from user LIMIT 0,10 ;

下 10 个

Select * from user LIMIT 10,20 ;

每次在 arrayList 中添加新数据后调用 notifyDataSetChanged() 到您的回收器视图的适配器。

adapter.notifyDataSetChanged();

编辑 : 或您需要使用其他 arrayList 并在每次添加数据后逐个添加数据 notifyDataSetChanged() 到回收器视图适配器;

更好的选择是制作两个数据数组,mainArray 和 backupArray。 首先尝试将 10 个项目从 backupArray 添加到 mainArray。 onLoadMore-从 backupArray 添加更多 10 项到 mainArray。 加载更多登录 适配器-getView(...)

 if(position==10){
   activity.loadMore();
}

下面是我所做的并且在不使用任何临时数组的情况下工作得很好。正如@MHP 已经引用的那样 getCount() 就可以了。

   @Override
    public int getCount() {
        if(displaySize > statusList.size())
        return statusList.size();
        else
            return displaySize;
    }

这里 displaySize 是我要显示的条目数,而 statusList 是我保存所有条目的实际数组。

下面是我要调用的方法 adapter.setDisplayCount(10);

 public void setDisplayCount(int numberOfEntries) {
           displaySize = numberOfEntries;
            notifyDataSetChanged();

    }

我们开始了

@Override
public int getItemCount() {
    if (arrayList.size()>10){
        return 10;
    }
    return arrayList.size();
}