我有一个扩展RoboListFragment
的类,它使用一个管理器类来获取一些类的信息(我模型中的一个Guest)。我遇到的问题是当这个管理器无法检索数据时,我想忽略显示的进度条。
以下是我片段中最重要的部分:
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>
如您所见,我根本没有定义任何ProgressBar。我被告知Android会显示这个ProgressBar,直到设置了适配器(我没有进一步的细节),但我不知道如何为ListView
设置一些空内容
我怎样才能实现这一点,以便当Callback成功返回时ProgressBar会隐藏? 最好的问候。
答案 0 :(得分:0)
我犯了一个愚蠢的错误:(
而不是将null
设置为列表适配器,就像这样(正确的方式):
GuestFragment.this.setListAdapter(null)
我试图获取ListView
并设置null
适配器,如下所示:
GuestFragment.this.getListView().setAdapter(null)
感谢您的评论!