1

ListView にレコードがある場合でも、ListView の emptyView は常に表示されます。私は SherlockFragment を使用しており、ListView にコードを次のように表示しています。

ViewGroup vg = (ViewGroup) getActivity().getLayoutInflater().inflate(
                R.layout.header_file, hotelListView, false);
        hotelListView.addHeaderView(vg, null, false);
        hotelListView.setOnItemClickListener(this);
        hotelListView.setEmptyView(view.findViewById(R.id.empty));

およびxml:

 <ListView
        android:id="@+id/hotel_list_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="#00000000"
        android:paddingLeft="8dp"
        android:persistentDrawingCache="scrolling"
        android:scrollingCache="false" >
    </ListView>

    <TextView
        android:id="@android:id/empty"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="No Results" />

そのため、サーバーから結果を取得した後も TextView が画面に表示されたままになり、画面に No Results テキストが表示され、同時にリストに項目が表示されます。リストに要素がない場合にのみ @android:id/empty が表示されるようにするには、何を変更する必要がありますか? ありがとう

4

1 に答える 1

1

ソースを調べなくても、考えられる間違いが 3 つ考えられます。

  1. ListView にはアダプターが設定されていません。

  2. アダプターが再実装された場合、getCount() メソッドは正しく再実装されていますか?

  3. notifyDatasetChanged() を呼び出す必要がありますか? コンテンツがサーバーから取得された後。

于 2013-03-18T10:13:24.793 に答える