2017-10-11 4 views
0

Ich habe eine Frage, wie notifyDataSetChanged() Arbeiten in einem BaseExpandableListAdapterWie funktioniert notifyDataSetChanged?

ich eine boolean Variable bin Aktualisierung bestimmt, dessen Ausgang den Ausgang des getChildrenCount() aber die Anzahl der Kommentare sichtbar ändern es nicht

-Code beim Aufruf :

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

Es gibt keine Datenänderung des Adapters ist. Bitte geben Sie "allCommentsVisiable" -Werte im Datenadapter an. –

+0

Zur Zeit ist es eine private Member Variable von "public class PostListAdapter erweitert BaseExpandableListAdapter" –

+0

Andere Mitglieder: private Liste postList; privater Kontextkontext; private String SessionID; –

Antwort

0

notifyDataSetChanged

Benachrichtigt die beigefügten Beobachter, dass die zugrunde liegenden Daten wurde geändert und jede Ansicht des Datensatzes zulässt, sollte sich erfrischen. Reference

Und in Ihrem Fall ist es keine zugrunde liegenden Daten ändern. Um es funktionieren zu lassen, müssen Sie Ihre Liste Elemente ändern, damit es das Set aktualisiert und der Counter wird zusammen mit der Größe des Sets aktualisiert.

Verwandte Themen