EmptyView w ListView jest zawsze wyświetlany, nawet jeśli istnieją pozycje w ListView. Używam SherlockFragment i pokazuję ListView kod jest następujący:
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));
i 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" />
Więc po pobraniu wyników z serweraTextView jest nadal wyświetlany na ekranie i widzę tekst No Results na ekranie i jednocześnie są pozycje na liście. Co muszę zmienić, aby @android: id / empty wyświetlał się tylko wtedy, gdy na liście nie ma żadnych elementów? Dzięki
Odpowiedzi:
1 dla odpowiedzi № 1Nie zaglądając do źródła, mogę wymyślić 3 możliwe błędy,
ListView nie ma ustawionego adaptera.
Jeśli adapter zostanie ponownie zaimplementowany, czy metoda getCount () zostanie poprawnie zaimplementowana ponownie?
czy musisz zadzwonić do notifyDatasetChanged ()? Po pobraniu treści z serwera.