Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ListFragment和asynctask问题 我试图在我的活动中间显示一个列表片段。列表片段适配器是一个自定义适配器(从BaseAdapter扩展而来),具有典型的ViewHolder模式。它的实现是正确的_Android_Android Fragments_Android Asynctask_Adapter_Greenrobot Eventbus - Fatal编程技术网

Android ListFragment和asynctask问题 我试图在我的活动中间显示一个列表片段。列表片段适配器是一个自定义适配器(从BaseAdapter扩展而来),具有典型的ViewHolder模式。它的实现是正确的

Android ListFragment和asynctask问题 我试图在我的活动中间显示一个列表片段。列表片段适配器是一个自定义适配器(从BaseAdapter扩展而来),具有典型的ViewHolder模式。它的实现是正确的,android,android-fragments,android-asynctask,adapter,greenrobot-eventbus,Android,Android Fragments,Android Asynctask,Adapter,Greenrobot Eventbus,我使用greenrobot Eventbus设置了适配器,以便从在后台执行查询的asynctask接收一个新的列表对象(这样不会减慢UI主线程的速度) 问题是列表片段最初没有数据库查询的结果,因此它默认为空(并在my xml中显示id为“empty”的主活动的textview) 最后,我的适配器和listviewfragment根本没有实例化,因为它默认为空 有没有更好的方法? 如何让listview片段等待从asyncTask接收到的数据 我将只做一个包含listview的片段,而不是list

我使用greenrobot Eventbus设置了适配器,以便从在后台执行查询的asynctask接收一个新的列表对象(这样不会减慢UI主线程的速度)

问题是列表片段最初没有数据库查询的结果,因此它默认为空(并在my xml中显示id为“empty”的主活动的textview)

最后,我的适配器和listviewfragment根本没有实例化,因为它默认为空

有没有更好的方法? 如何让listview片段等待从asyncTask接收到的数据


我将只做一个包含listview的片段,而不是listview片段,我将看看这是否有帮助。

正如我正确理解的那样,到目前为止,您做的一切都很好。您需要做的是向适配器添加一个“update”方法,并在asynctask完成任务并获得结果时调用该方法。 此更新方法应该类似于

public void updateAdapterData(List<String> newList) {
    mItems.clear(); // say mItems is the global list you have in the adpater
    mItems.addAll(newList);

    notifyDataSetChanged(); // This will cause the adpater to re-draw it's rows, so now data should be visible in your list
}

这有用吗?

谢谢,迈克。我已经有了它,它从异步任务中获取onEvent方法并将列表加载到适配器中。问题是没有创建片段本身或适配器。由于数据最初是空的,当没有数据时,ListFragment的默认行为是显示id为空的视图资源。我真的不明白它是如何做到这一点的,因为它不是一开始就创建的(例如,我的日志不会在onattach或oncreateview中出现,所以我可以说)。我正在查看ListFragment源代码,试图找出它。如果您仍然被卡住,请提供一些代码,以便我可以帮助您!粘贴在代码中。抱歉,有很多。我试图删除任何与问题无关的内容。我也有点困惑,它说要使用Fragment标记和android:name属性将xml中的片段添加到活动中。但是,对于文档中的ListFragment,它说在xml中有一个listview,id为android list。它是哪一个?我有什么明显的遗漏吗?
 adpater.updateAdapterData(newList);