Android中的ListView直到我触摸才显示项目

问题描述 投票:3回答:1

我有一个ListView(第一个),我在活动开始时和用户从菜单中选择一些选项时首次设置适配器。我在同一活动上有另一个列表(第二个),显示某些项目的下载进度。我已经开始重复任务来更新此ListView以更新每个项目的进度。现在的问题是,如果我从菜单中选择任何选项来更改第一个列表适配器,它将根据需要无效。但是如果我的第二个ListView中有一些项目已下载,那么从菜单中选择一个选项来更改第一个列表上的适配器只显示一个空白列表。

但是,当我在列表上拖动所有项目显示。我没有得到问题所在。请帮忙。

android android-layout android-listview android-adapter
1个回答
0
投票

我刚遇到问题,发现了什么问题。它基本上意味着没有在主线程上调用ListAdapter.notifyDataSetChanged()

这意味着它通过更改不在主线程上的适配器数据来实现。例如,调用ArrayAdapter.add()

解决方案很简单。将适配器数据更改方法放在主线程上。例如,您可以这样做:

Activity.this.runOnUiThread(new Runnable() {

    @Override
    public void run() {
        mAdapter.notifyDataSetChanged();
    }

});
© www.soinside.com 2019 - 2024. All rights reserved.