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;
...}
我没有尝试过,但也许您可以将所有项目加载到适配器中,然后根据它们的位置显示您需要的项目。
我不确定这是否有效,但至少你可以试一试。
谢谢
我建议您执行以下操作。
- 从您要显示列表的位置获取列表的偏移量。例如。 100 人名单中的 75 人。
- Return
offset - list.size()
在 Adapter
的 'getCount()' 中。
- 在
getView()
中获取特定项目 item = list.get(offset + position)
我有一个 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;
...}
我没有尝试过,但也许您可以将所有项目加载到适配器中,然后根据它们的位置显示您需要的项目。
我不确定这是否有效,但至少你可以试一试。
谢谢
我建议您执行以下操作。
- 从您要显示列表的位置获取列表的偏移量。例如。 100 人名单中的 75 人。
- Return
offset - list.size()
在Adapter
的 'getCount()' 中。 - 在
getView()
中获取特定项目item = list.get(offset + position)