Android:从某个点开始在列表视图上加载项目
Posted
技术标签:
【中文标题】Android:从某个点开始在列表视图上加载项目【英文标题】:Android: load items on listview from a certain point onward 【发布时间】:2015-11-23 03:21:45 【问题描述】:我有一个从互联网加载消息的活动。我将这个下载到 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;
...
【问题讨论】:
您想在 ListView 中显示从 75 - 99 开始的总共 25 个项目,但适配器应包含所有数据项。这是你想要的吗?还要澄清一下,适配器应该包含所有项目是否有任何具体原因? 是的,你已经明白了。出于不同的原因,我必须这样做 在从数据列表中获取时操作位置编号...在此处发布您的适配器 你可以举个例子吗? 编辑我的问题。添加适配器代码 【参考方案1】:我建议您执行以下操作。
-
从您希望显示列表的位置获取列表的偏移量。例如。 100 个列表中的 75 个。
在
Adapter
的“getCount()”中返回 offset - list.size()
。
在getView()
获取特定项目做item = list.get(offset + position)
【讨论】:
哦!感谢您的解决方案! ;)【参考方案2】:我还没有尝试过,但也许您可以将所有项目加载到适配器中,然后根据它们的位置显示您需要的。
我不确定这是否可行,但至少你可以尝试一下。
谢谢
【讨论】:
以上是关于Android:从某个点开始在列表视图上加载项目的主要内容,如果未能解决你的问题,请参考以下文章
如何在列表视图的每个项目上加载 json 数据并显示在 android 的另一个活动中获取的数据?
单击列表视图项目时,Android youtube api可全屏加载视频
Android OnItemClick 无法将加载的 SQL 数据库加载到列表视图中