Z jakiegoś powodu pusty widok, w tym przypadku TextView , zawsze pojawia się, nawet jeśli ListView nie jest pusty. Pomyślałem, że ListView automatycznie wykryje, kiedy wyświetlić pusty widok.
<RelativeLayout android:id="@+id/LinearLayoutAR"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ListView android:id="@+id/ARListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"></ListView>
<ProgressBar android:id="@+id/arProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"></ProgressBar>
<!-- Here is the view to show if the list is emtpy -->
<TextView android:id="@id/android:empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="No Results" />
</RelativeLayout>
Jak prawidłowo podłączyć pusty widok?
Kiedy przedłużyć
FragmentActivity
alboActivity
i nieListActivity
, będziemy chcieli przyjrzeć:ListView.setEmptyView ()
źródło
Jak mówi appsthatmatter, w układzie coś takiego:
aw połączonym działaniu:
Działa również z GridView ...
źródło
Wypróbowałem wszystkie powyższe rozwiązania, wymyśliłem rozwiązanie problemu, tutaj zamieszczam pełne rozwiązanie.
Plik xml :
TextView ( „@ + id / emptyElement” ) jest symbolem zastępczym pustego widoku listy.
Oto kod strony java:
Pamiętaj, aby umieścić emptyView po powiązaniu adaptera z listview.Mine nie działało po raz pierwszy i po przeniesieniu setEmptyView po setAdapter już działa.
Wynik:
źródło
android:layout_below="@+id/lv_msglist"
do emptyElementGorąco polecam korzystanie z ViewStubs w ten sposób
Zobacz pełny przykład autorstwa Cyrila Mottiera
źródło
Działa to wyraźnie z FragmentActivity, jeśli używasz biblioteki obsługi. Przetestowano to, budując dla API 17, czyli obraz 4.2.2.
źródło
Kod działania, jego rozszerzenie jest ważne
ListActivity
.Layout xml, id w obu widokach są ważne.
źródło
Aby dodać, że tak naprawdę nie musisz tworzyć nowych identyfikatorów, zadziała coś takiego jak poniżej.
W układzie:
Następnie w ćwiczeniu:
źródło
Miałem ten problem. Musiałem sprawić, by moja klasa rozszerzała ListActivity zamiast Activity i zmienić nazwę mojej listy w XML na
android:id="@android:id/list"
źródło
Rozwiązaniem programowym będzie:
źródło
Najpierw sprawdź, czy lista zawiera wartości:
Jeśli tak, w przeciwnym razie użyj:
źródło
list
?