2017-10-11 5 views
0

J'ai une question sur la façon dont notifyDataSetChanged() travaille dans un BaseExpandableListAdapterComment notifyDataSetChanged fonctionne-t-il?

Je mets à jour une variable booléenne, la sortie détermine la sortie de getChildrenCount(), mais le nombre de commentaires visibles ne change pas à l'appeler

code :

buttonViewComments.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       allCommentsVisible = !allCommentsVisible; 
       notifyDataSetChanged(); 
      } 
     }); 

getChildrenCount:

public int getChildrenCount(int groupPosition) { 
     if(allCommentsVisible || postList.get(groupPosition).commentListSize()<=3) 
      return postList.get(groupPosition).commentListSize(); 
     else{ 
      return 3; 
     } 
    } 
+0

Il n'y a pas de changement de données est votre adaptateur. Veuillez indiquer les valeurs "allCommentsVisiable" dans l'adaptateur de données. –

+0

Actuellement, il s'agit d'une variable memeber privée de "public class PostListAdapter extends BaseExpandableListAdapter" –

+0

Autres membres: private Liste postList; Contexte contextuel privé; private String SessionID; –

Répondre

0

notifyDataSetChanged

les observateurs attachés Avise que les données sous-jacentes a été changé et tout Voir reflétant l'ensemble de données devrait se rafraîchir. Reference

Et dans votre cas, il n'y a pas de changement de données sous-jacentes. Afin de le faire fonctionner, vous devez modifier votre liste postList articles de sorte qu'il mettra à jour l'ensemble et le compteur sera mis à jour avec la taille de l'ensemble.