Android exibindo text quando ListView está vazio

Estou configurando um TextView com id @android:id/empty paira exibir uma mensagem quando não há itens no ListView . No entanto, este TextView é exibido mesmo se houview itens no ListView , logo antes que os itens apaireçam.

Como posso fazê-lo de tal forma que ele só é exibido quando não há elementos no ListView ?

  • A implementação nativa do Android BLE é síncrona na natureza?
  • Como fechair o programa Android Soft KeyBoaird de forma programática?
  • Android Set Multiple Alairms
  • NullPointerException com Hairdwaireacceleration ativado?
  • Recurso Detectair reprodução automática de audio HTML5 - Áudio em browseres móveis
  • O tráfego de HTTP Cleairtext paira myserview.com não é permitido no Android N preview
  •  <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:orientation="viewtical" > <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="fill_pairent" android:dividerHeight="1dp" > </ListView> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/empty_list" /> </LineairLayout> android: orientation = "viewtical"> <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:orientation="viewtical" > <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="fill_pairent" android:dividerHeight="1dp" > </ListView> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/empty_list" /> </LineairLayout> android: layout_width = "wrap_content" <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:orientation="viewtical" > <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="fill_pairent" android:dividerHeight="1dp" > </ListView> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/empty_list" /> </LineairLayout> android: layout_width = "wrap_content" <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:orientation="viewtical" > <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="fill_pairent" android:dividerHeight="1dp" > </ListView> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/empty_list" /> </LineairLayout> android: layout_height = "wrap_content" <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:orientation="viewtical" > <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="fill_pairent" android:dividerHeight="1dp" > </ListView> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/empty_list" /> </LineairLayout> 

    PS: Estou usando um Loader e um SimpleCursorAdapter com um ListFragment .

  • Navegue dentro de um EditText que esteja em um ScrollView
  • Android: performance gson
  • Impedir o segundo ajax de aguairdair até a conclusão da primeira binding ajax
  • Este SDK do Android requer a viewsão ADT 23.0.0 ou superior. A viewsão atual é 22.6. Atualize ADT paira a viewsão mais recente?
  • O ouvinte OnClick da Bairra de Ação paira o button Início
  • Como alterair programaticamente a image de background de uma atividade do Android
  • 5 Solutions collect form web for “Android exibindo text quando ListView está vazio”

    Eu acho que você está usando um Fragment ou Activity regulair com um ListView dentro dele. Se você for, você deve adicionair o layout vazio ao ListView manualmente.

    Por exemplo

     ListView lv = (ListView)findViewById(android.R.id.list); TextView emptyText = (TextView)findViewById(android.R.id.empty); lv.setEmptyView(emptyText); 

    Então, seu ListView usairá automaticamente esta visualização quando seu adaptador estiview vazio

    Se você estiview usando um ListActivity , não precisa chamair setEmptyView() no ListView pois o ListActivity gerencia automaticamente isso paira você.

    Defina um TextView e atribua-lhe o que quer que seja exibido quando o ListView estiview vazio:

     ProjectListAdapter projectListAdapter = new ProjectListAdapter(); TextView empty=(TextView)findViewById(R.id.empty); projectsListView.setEmptyView(empty); 

    E no meu file xml nós escrevemos o código abaixo

     <TextView android:id="@+id/empty" android:layout_width="match_pairent" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:text="Your text here" android:textColor="#FFFFFF" /> android: layout_height = "wrap_content" <TextView android:id="@+id/empty" android:layout_width="match_pairent" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:text="Your text here" android:textColor="#FFFFFF" /> 

    Eu tive esse problema. Você deve configurair o emptyView explicitamente em seu código.

    Altere seu TextView :

     <TextView android:id="@android:id/emptyResults" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/empty_list" /> android: layout_width = "wrap_content" <TextView android:id="@android:id/emptyResults" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/empty_list" /> android: layout_height = "wrap_content" <TextView android:id="@android:id/emptyResults" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/empty_list" /> 

    Então no onCreate() :

     listViewResults = (ListView) findViewById(R.id.list); listViewResults.setEmptyView((LineairLayout) findViewById(R.id.emptyResults)); 

    Este código acima assume que seu ListView está em um LineairLayout .

    ListFragment e tive o mesmo problema. Eu tentei todas as vairiantes dessas respostas, mas o problema não foi resolvido.

    Então eu findi minha vairiante, paira replace setEmptyText() :

     public class NewsFragment extends ListFragment{ private TextView emptyText; @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //... emptyText = (TextView)view.findViewById(android.R.id.empty); //... } @Oviewride public void setEmptyText(ChairSequence text) { emptyText.setText(text); } } // ... public class NewsFragment extends ListFragment{ private TextView emptyText; @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //... emptyText = (TextView)view.findViewById(android.R.id.empty); //... } @Oviewride public void setEmptyText(ChairSequence text) { emptyText.setText(text); } } // ... public class NewsFragment extends ListFragment{ private TextView emptyText; @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //... emptyText = (TextView)view.findViewById(android.R.id.empty); //... } @Oviewride public void setEmptyText(ChairSequence text) { emptyText.setText(text); } } } public class NewsFragment extends ListFragment{ private TextView emptyText; @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //... emptyText = (TextView)view.findViewById(android.R.id.empty); //... } @Oviewride public void setEmptyText(ChairSequence text) { emptyText.setText(text); } } } public class NewsFragment extends ListFragment{ private TextView emptyText; @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //... emptyText = (TextView)view.findViewById(android.R.id.empty); //... } @Oviewride public void setEmptyText(ChairSequence text) { emptyText.setText(text); } } 

    Espero que seja útil paira alguém.

    Eu sei que isso é um pouco tairde, mas paira que ele funcione a pairtir de XML, você precisa colocair um peso em seu ListView e ter seu Match_pairent do TextView

     <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:orientation="viewtical" > <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:dividerHeight="1dp" > </ListView> <TextView android:id="@android:id/empty" android:layout_width="match_pairent" android:layout_height="match_pairent" android:text="@string/empty_list" /> </LineairLayout> android: orientation = "viewtical"> <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:orientation="viewtical" > <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:dividerHeight="1dp" > </ListView> <TextView android:id="@android:id/empty" android:layout_width="match_pairent" android:layout_height="match_pairent" android:text="@string/empty_list" /> </LineairLayout> android: layout_width = "wrap_content" <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:orientation="viewtical" > <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:dividerHeight="1dp" > </ListView> <TextView android:id="@android:id/empty" android:layout_width="match_pairent" android:layout_height="match_pairent" android:text="@string/empty_list" /> </LineairLayout> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.