1

这是我不久前已经问过的问题的延续。我得到了一个实际上不起作用的解决方案。无论如何-这是问题/问题

我查看了过去的一些帖子,似乎如果我将项目添加到 ListView 适配器,它应该会自行更新,并且用户应该能够滚动到新附加的项目。不幸的是,这不是我观察到的。如果我将新项目附加到现有的 ArrayAdapter,我只会在再次重新运行 ListView#setAdapter 时看到更新的结果。什么都不做,使视图无效等不做任何事情。这是一个片段:

SearchItemsAdapter a = (SearchItemsAdapter) listview.getAdapter();
List<SearchItem> values = fetchNextSetOfItems();
a.append(values);
// unless I do this - I will not see the update, but if I do - 
// I'll jump to the top
listview.setAdapter(a);

这是附加方法:

public void append(List<SearchItem> values) {
        this.items.addAll(values);
}

有什么我想念的吗?

4

1 回答 1

2

不要将项目添加到ArrayList. 将它们添加到ArrayAdapter.

于 2009-10-12T21:39:40.310 回答