无法加载列表视图的内容时如何关闭Android的进度条?



我有一个扩展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)

无论如何,感谢您的评论!

最新更新