2013-04-22 4 views
9

Ich bin neu in Android-Entwicklung und auch mit erweiterbaren Listview zum ersten Mal. Ich erstelle eine App, in der ich alle Inhalte von d expandable listview von webservice bekomme. Ich bekomme auch alle Inhalte vom wevservice, aber wenn in einer erweiterbaren Listenansicht kein Kind eines Elternteils vorhanden ist, gibt der benutzerdefinierte Adapter merhod von expandable listview getchildcount() null zurück und gibt eine Nullzeigerausnahme, wie kann ich nur Eltern in der Liste anzeigen kein Kind und beides wenn beide vorhanden sind ??Erweiterbare Listenansicht ohne Kinder

Danke

public View getChildView(int p_id, int c_id, boolean bln1, View view,ViewGroup viewgroup) { 
    // TODO Auto-generated method stub 

    if (view == null) { 
      view = inflater.inflate(com.example.eventlive.R.layout.homescreen_list_item_child, viewgroup,false); 
     } 

     TextView textView = (TextView) view.findViewById(R.id.list_item_text_child); 
     //"i" is the position of the parent/group in the list and 
     //"i1" is the position of the child 
     textView.setText(mParent.get(p_id).getArrayChildren().get(c_id)); 
     view.setBackgroundResource(R.drawable.child_bg); 
     //return the entire view 
     return view; 
} 

//counts the number of children items so the list knows how many times calls getChildView() method 
@Override 
public int getChildrenCount(int p_id) { 
    // TODO Auto-generated method stub 
    return mParent.get(p_id).getArrayChildren().size(); 
} 
+0

Code schreiben .. – Pragnani

Antwort

16

einfach eine leere Kinder Array wie folgt initialisieren:

private HashMap<String, ArrayList<String>> mGroupsItems = 
     new HashMap<String, ArrayList<String>>(); 
. . . 
mGroupsItems.put(name_of_empty_group, new ArrayList<String>()); 
+0

Können Sie bitte nur sagen, wo sollten wir diese leeren Kinder Array initialisieren? Ich bin mit dem gleichen Problem konfrontiert –

+0

@Alexandar Zhak bitte antworten –

+0

@Sharp Edge In Ihrer Aktivität onCreate(), wo Sie ExpandableListView initialisieren und setzen Sie es Adapter. –