2016-03-23 6 views
0

Y at-il un rappel/événement que je peux remplacer lorsque La liste devient vide? Tout comme dans ListFragment, lorsque la liste devient vide, il affiche automatiquement EmptyText (Message texte vide). Comment il détermine cette liste est devenue vide? Je veux parce que je veux supprimer Fragment.Désinstaller Fragment lorsque la liste est vide

Je travaille dans la mise en page Multi-volet.

+0

Avez-vous vérifié setOnHierarchyChangeListener() –

+0

Je pense en utilisant la taille de la liste –

Répondre

1

Vous pouvez résoudre ce avec une solution simple,

après avoir retiré l'article de Liste toujours vérifier adapter.getCount()==0 est est vrai, alors votre liste est vide

+0

Dois-je le vérifier avant d'appeler 'notifyDataSetChanged()' ou après? –

+0

après ne importe pas que vous supprimez votre élément de 'ArrayList' il devient indisponible.'notifyDataSetChanged()' seulement demande de mettre à jour l'interface utilisateur. Donc, vous pouvez appeler avant ou après ça va bien –

0

Vous pouvez faire un chèque à chaque fois que vous ajoutez ou supprimez élément à la listView en utilisant OnHieararchyChangeListerner

le parent sera la vue de la liste

 ListView lv = (ListView) findViewById(R.id.listView); 
    lv.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() { 
     @Override 
     public void onChildViewAdded(View parent, View child) { 

     } 

     @Override 
     public void onChildViewRemoved(View parent, View child) { 
      if (((ListView) parent).getAdapter().getCount() == 0) { 
       // Do what your want 
      } 
     } 
    });