我有一个扩展RoboListFragment
类,它使用管理器类来获取某些类的信息(在我的模型中是一个来宾(。我面临的问题是,当此管理器无法检索数据时,我想关闭显示的进度条。以下是我的片段中最重要的部分:
public class GuestFragment extends RoboListFragment {
// Lines omitted
private void loadGuest() {
Log.d(GuestFragment.class.getSimpleName(), "Loading guest...");
this.guestManager.getGuest(new Callback<Guest>() {
@Override
public void onSuccess(Guest guest) {
Log.d(GuestFragment.class.getSimpleName(), "Guest loaded OK");
GuestFragment.this.createAdapter(guest);
}
@Override
public void onFailure(UmError ex) {
// Here I want to dismiss the ProgressBar
Log.d(GuestFragment.class.getSimpleName(), "Guest failed");
GuestFragment.this.getListView().setEmptyView(new View(getActivity())); // This line wouldn't work
Toast.makeText(GuestFragment.this.getActivity(), "Error here!", Toast.LENGTH_LONG);
}
});
}
private void createAdapter(Guest guest) {
// Lines omitted
if (guestExists && activityWasCreated) {
ArrayAdapter adapter = new ProfilesAdapter(this.getActivity(), guest.getDeliveryProfiles());
this.setListAdapter(adapter);
}
}
}
编辑#1:我尝试在我的onFailure()
方法中添加此行
GuestFragment.this.getListView().setAdapter(null)
但没有用。编辑#2:我也尝试在我的onFailure()
方法中添加它
GuestFragment.this.getListView().setEmptyView(null);
也没用。
XML非常简单:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/pLarge"
android:orientation="vertical"
tools:context=".fragment.GuestFragment">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@id/android:list"
android:divider="@android:color/transparent"
android:dividerHeight="@dimen/fSmaller"/>
</LinearLayout>
如您所见,我根本没有定义任何进度条。有人告诉我,在设置适配器之前,Android会显示此进度条(我没有更多详细信息(,但我不知道如何为ListView
设置一些空内容
我怎样才能实现这一点,以便在回调成功返回时隐藏进度条?此致敬意。
我犯了一个愚蠢的错误:(
而不是将null
设置为列表适配器,如下所示(正确方式(:
GuestFragment.this.setListAdapter(null)
我试图获取ListView
并设置一个null
适配器,如下所示:
GuestFragment.this.getListView().setAdapter(null)
无论如何,感谢您的评论!