Android:从某一点开始加载列表视图上的项目



我有一个活动,从互联网加载消息。我正在下载这个到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;
       ...}

我建议你这样做。

  1. 从您想要显示列表的位置获取列表的偏移量。如。100个名单中的75个
  2. Adapter的'getCount()'中返回offset - list.size()
  3. getView()中获取特定物品,执行item = list.get(offset + position)

我没有尝试过,但也许你可以加载适配器中的所有项目,然后根据它们的位置,你可以显示你需要的那个。

我不确定这是否会起作用,但至少你可以试一试。

谢谢

最新更新