我有一个活动,从互联网加载消息。我正在下载这个到Sqlite,稍后将它添加到适配器。
我想从一个特定的数字开始在屏幕上添加。我们可能认为我们在arrayList适配器中添加了100个元素。从75年开始。SQLite我可以从最近的25添加,但不能这样做,因为适配器arrayList必须包含所有。我重写了getCount()并返回25来限制条目的最大值,但是它确实显示了前25个条目,而不是最后25个条目。我想我必须在getView()中做点什么。(适配器中的方法重写)什么好主意吗?
************* 编辑。添加解决方案
适配器
@Override
public int getCount() {
if(messagesItems.size() <= maxRowsShow){
return messagesItems.size();
}else{
offset = messagesItems.size() - maxRowsShow;
return maxRowsShow;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
position = position + offset;
...}
我建议你这样做。
- 从您想要显示列表的位置获取列表的偏移量。如。100个名单中的75个
- 在
Adapter
的'getCount()'中返回offset - list.size()
- 在
getView()
中获取特定物品,执行item = list.get(offset + position)
我没有尝试过,但也许你可以加载适配器中的所有项目,然后根据它们的位置,你可以显示你需要的那个。
我不确定这是否会起作用,但至少你可以试一试。
谢谢