我正在添加arrayList
中的所有项目,现在我想在我的回收站视图中只显示10个项目,然后点击更多10项,依此类推。我想使用相同的arrayList
。
答案 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();
}