首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android ListView刷新不正常

Android ListView刷新不正常
EN

Stack Overflow用户
提问于 2017-05-31 01:58:01
回答 3查看 50关注 0票数 0

我使用ListView来显示我的项目。当这些项发生变化时,我会更新适配器列表并调用notifyDataSetChanged()

代码语言:javascript
运行
复制
MyAdapter adapter = (MyAdapter) myListView.getAdapter();
if(adapter == null) {
     adapter = new MyAdapter(this, itemList);
     myListView.setAdapter(adapter);
}
adapter.notifyDataSetChanged();

这似乎在某种程度上起作用,因为我的ListView显示了更多的项目,但列表中的新项目不能正确显示。

这些项目不显示任何信息。适配器似乎没有为这些新项目刷新。

适配器如下所示(简化):

代码语言:javascript
运行
复制
public View getView(int position, View convertView, ViewGroup parent) {
    Point point = getItem(position);
    if (convertView == null)
       convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_point, parent, false);

    TextView firstLine = (TextView) convertView.findViewById(R.id.firstLine);
    firstLine.setText(point.getNumber());
}

EN

回答 3

Stack Overflow用户

发布于 2017-05-31 02:11:38

使您的listView无效

代码语言:javascript
运行
复制
adapter.notifyDataSetChanged();
listView.invalidate();
票数 0
EN

Stack Overflow用户

发布于 2017-05-31 02:53:26

我猜当您试图通知数据集更改时,数据不会被传递到适配器。你能在你将数据添加到你的数组列表中的地方发布整个类代码吗?还有一件事,尝试在视图适配器中使用"ViewHolder“类。

票数 0
EN

Stack Overflow用户

发布于 2017-05-31 02:55:27

我找到问题了。

由于soe缺少附加数据,更新的项在Adapter.getView()函数的早期导致异常。因此,函数的其余部分没有被调用,并将内容保留为空。

解决方案是不仅要更新适配器的列表,还要更新适配器所需的所有必要的附加数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44268885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档