0

我有一个从互联网加载消息的活动。我将它下载到Sqlite,稍后将其添加到适配器。Android:从某个点开始在列表视图中加载项目

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

************* EDIT.ADD SOLUTION

适配器

@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; 
     ...} 
+0

你想在75 ListView控件开始共有25个项目,以显示 - 99,但适配器应该包含所有的数据项。这是你想要的吗?也只是为了澄清,是否有适配器应包含所有项目的任何具体原因? – Abdullah

+0

是的,你已经明白了。我必须这样做,因为不同的原因 –

+2

在从datalist获取时操作位置编号...在此处张贴您的适配器 –

回答

2

我建议你做以下几点。

  1. 获取您想要显示列表的位置列表的偏移量。例如。 75从100的列表中获得。
  2. 返回offset - list.size()在'getCount()'的Adapter中。
  3. getView()获得特定项目做item = list.get(offset + position)
+0

哦!感谢您的解决方案! ;) –

0

我还没有试过,但也许你可以加载在适配器的所有项目和然后根据他们的位置,你可以显示你所需要的。

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

谢谢

相关问题