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

Android: load items on listview from a certain point onward

我有一个 activity 从 Internet 加载消息。我正在将其下载到 Sqlite,稍后将其添加到适配器。

我想从特定号码开始在屏幕上添加。 我们可能认为我们已经在 arrayList 适配器中添加了 100 个项目。我们只想从 75 岁开始展示。我可以从 SQLite 添加最后 25 个,但不能这样做,因为适配器 arrayList 必须包含所有。 我已经覆盖了 getCount () 和 return 25 以限制项目的最大值,但它确实显示前 25 个项目,而不是最后 25 个项目。 我想我必须在 getView() 中做一些事情。 (适配器中的方法覆盖) 有什么想法吗?

***************EDIT.ADD 解决方案

适配器

  @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. Return offset - list.size()Adapter 的 'getCount()' 中。
  3. getView() 中获取特定项目 item = list.get(offset + position)