我正在使用自定义加载器为列表片段中的列表视图加载数据。在 listfragment 的 oncreate 方法中,我构造了一个自定义 arrayadapter(并调用 setListAdapter),没有传入任何数据,因为当时数据还没有加载。当 loader 完成加载后,fragment 会收到通知;在那里我调用 setData,这是适配器中将数据添加到适配器的方法:
public void setData(List<MyInfo> data) {
clear();
if (data != null) {
for (MyInfo item : data) {
add(item); }
}
}
我正在粘贴此方法,因为我可能在这里遗漏了一些东西。
当我运行应用程序时,数据加载正常,setData 正在执行,但适配器的 getView 方法永远不会被调用。但是,当我从自定义布局文件中删除带有标准“android:id=”@id/android:empty”的 TextView 时,我的列表出现了。我猜适配器的构造函数在一开始就膨胀了“空”文本视图,在加载数据之前,一旦加载器完成加载,TextView 不会被 ListView 替换。
加载完成后,我应该怎么做才能让 ListView 替换“空”TextView?
或者,也许这是不好的做法 - 我是 Android 新手,所以请原谅我。我想让 listfragment 在第一次加载期间以及加载的列表为空时至少显示一些内容。那么在这种情况下有什么好的做法呢?