0

我正在使用自定义加载器为列表片段中的列表视图加载数据。在 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 在第一次加载期间以及加载的列表为空时至少显示一些内容。那么在这种情况下有什么好的做法呢?

4

0 回答 0