2013-04-22 21 views
9

Jestem nowy w rozwoju Androida i po raz pierwszy korzystam z rozwijanego listview. Tworzę aplikację, w której dostaję całą zawartość d listy rozwijanej rozwijanej z serwisu internetowego. Dostaję całą zawartość z serwisu wevservice, ale wtedy, gdy nie ma elementu potomnego elementu nadrzędnego w rozszerzalnym widoku listy, niestandardowa nazwa rozszerzenia adaptera listy rozwijanej getchildcount() zwraca wartość null i podaje wyjątek wskaźnika pustego, w jaki sposób można wyświetlić tylko element nadrzędny na liście brak dzieci i jedno i drugie, gdy są dostępne?Rozbudowany listview bez dzieci

Dziękuję

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

pisać kod .. – Pragnani

Odpowiedz

16

Wystarczy zainicjować pustą tablicę dzieci tak:

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

Czy możesz powiedzieć zwykłe gdzie powinniśmy zainicjować tę pustą tablicę dzieci? Mam do czynienia z tym samym problemem: –

+0

@Alexandar Zhak, proszę odpowiedzieć –

+0

@Sharp edge W aktywacji onCreate(), gdzie zainicjalizujesz ExpandableListView i ustaw jego adapter. –