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

时间:2015-05-07 14:38:19

标签: android arraylist baseadapter

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

5 个答案:

答案 0 :(得分:4)

您可以在getCount()方法中自行处理 你可以在你的适配器类中放一个整数,每次点击更多按钮就可以增加它。

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

答案 1 :(得分:1)

以下是我所做的,并且在不使用任何临时数组的情况下工作得很好。正如@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();

    }

答案 2 :(得分:0)

这是不可能的,不仅取决于arrayList,它依赖于数据源,如数据库示例:

您将显示来自表格用户 :user_id,user_name 的数据,请求前10位

SQL语句

Select * from user LIMIT 0,10 ;

接下来10

Select * from user LIMIT 10,20 ;

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

adapter.notifyDataSetChanged();

修改或者您需要使用其他 arrayList 并在将数据 notifyDataSetChanged()添加到回收站后每次添加数据十次查看适配器;

答案 3 :(得分:0)

Better option is to make two array of data, mainArray and backupArray. First try to add 10 items from backupArray to mainArray. onLoadMore-add more 10 items from backupArray to mainArray. LoadmoreLoginc Adapter-getView(...)

babel testES6.js --out-file testES5.js

答案 4 :(得分:0)

我们在这里

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