gpt4 book ai didi

Android:如何刷新 ListView 内容?

转载 作者:IT王子 更新时间:2023-10-29 00:05:29 25 4
gpt4 key购买 nike

我的 ListView 正在使用 BaseAdapter 的扩展,我无法让它正确刷新。当我刷新时,旧数据似乎在新数据之上,直到发生滚动事件。旧行绘制在新行之上,但是当我开始滚动时旧行消失了。

我尝试调用 invalidateViews()notifyDataSetChanged()notifyDataSetInvalidated()。我的代码看起来像:

private void updateData()
{
List<DataItems> newList = getNewList();

MyAdapter adapter = new MyAdapter(getContext());
//my adapter holds an internal list of DataItems
adapter.setList(newList);
mList.setAdapter(adapter);
adapter.notifyDataSetChanged();
mList.invalidateViews();
}

最佳答案

对于那些仍然有问题的人,我是这样解决的:

List<Item> newItems = databaseHandler.getItems();
ListArrayAdapter.clear();
ListArrayAdapter.addAll(newItems);
ListArrayAdapter.notifyDataSetChanged();
databaseHandler.close();

我先从适配器清除数据,然后添加新的项目集合,然后才设置notifyDataSetChanged();起初我并不清楚,所以我想指出这一点。请注意,如果不调用 notifyDataSetChanged(), View 将不会被更新。

关于Android:如何刷新 ListView 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4903758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com