Por algum motivo, a exibição vazia, um TextView , nesse caso, sempre aparece mesmo quando o ListView não está vazio. Eu pensei que o ListView detectaria automaticamente quando mostrar a exibição vazia.
<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>
Como conectar a visualização vazia corretamente?
Quando você estende
FragmentActivity
ouActivity
e nãoListActivity
, você vai querer dar uma olhada:ListView.setEmptyView ()
fonte
Como diz appsthatmatter, no layout, algo como:
e na atividade vinculada:
Também funciona com um GridView ...
fonte
Se você está procurando por uma solução completa para o seu problema, entre em contato conosco.
O arquivo xml :
O textView ( "@ + id / emptyElement" ) é o espaço reservado para a lista vazia.
Aqui está o código para a página java:
Lembre-se de colocar o emptyView depois de vincular o adaptador ao listview.Mine não estava funcionando pela primeira vez e depois que mudei o setEmptyView após o setAdapter que está funcionando agora.
Resultado:
fonte
android:layout_below="@+id/lv_msglist"
para emptyElementEu recomendo que você use ViewStubs como este
Veja o exemplo completo de Cyril Mottier
fonte
Isso funciona claramente com FragmentActivity se você estiver usando a biblioteca de suporte. Testei isso construindo para a API 17, isto é, imagem 4.2.2.
fonte
Código de atividade, é importante estender
ListActivity
.Layout XML, o ID nas duas visualizações é importante.
fonte
Apenas para adicionar que você realmente não precisa criar novos IDs, algo como o seguinte funcionará.
No layout:
Então na atividade:
fonte
Eu tive esse problema. Eu tive que fazer minha classe estender ListActivity em vez de Activity e renomear minha lista no XML para
android:id="@android:id/list"
fonte
Uma solução programaticamente será:
fonte
Primeiro verifique se a lista contém alguns valores:
Se estiver tudo bem, use:
fonte
list
?