Por alguna razón, la vista vacía, una TextView en este caso, siempre aparece incluso cuando ListView no está vacía. Pensé que ListView detectaría automáticamente cuándo mostrar la vista vacía.
<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>
¿Cómo puedo conectar la vista vacía correctamente?
Al ampliar
FragmentActivity
oActivity
y noListActivity
, usted querrá echar un vistazo a:ListView.setEmptyView ()
fuente
Como dice appsthatmatter, en el diseño algo así como:
y en la Actividad vinculada:
También funciona con un GridView ...
fuente
Probé todas las soluciones anteriores. Se me ocurrió resolver el problema. Aquí estoy publicando la solución completa.
El archivo xml :
TextView ( "@ + id / emptyElement" ) es el marcador de posición para la vista de lista vacía.
Aquí está el código para la página de Java:
Recuerde colocar el emptyView después de vincular el adaptador a listview.Mine no funcionaba por primera vez y después de mover setEmptyView después de setAdapter ahora funciona.
Salida:
fuente
android:layout_below="@+id/lv_msglist"
para emptyElementLe recomiendo que use ViewStubs como este
Vea el ejemplo completo de Cyril Mottier
fuente
Esto funciona claramente con FragmentActivity si está utilizando la biblioteca de soporte. Probé esto compilando para API 17 es decir, imagen 4.2.2
fuente
Código de actividad, es importante extenderlo
ListActivity
.Diseño xml, la identificación en ambas vistas es importante.
fuente
Solo para agregar que realmente no necesita crear nuevas ID, algo como lo siguiente funcionará.
En el diseño:
Luego en la actividad:
fuente
Tuve este problema Tuve que hacer que mi clase extendiera ListActivity en lugar de Activity y cambiar el nombre de mi lista en el XML para
android:id="@android:id/list"
fuente
Una solución programática será:
fuente
Primero verifique que la lista contiene algunos valores:
Si está bien, use:
fuente
list
?