J'avais une liste extensible qui fonctionnait dans une activité précédente, mais j'ai décidé d'utiliser une route différente (Fragments), et je voulais copier l'idée de liste extensible. J'ai donc copié/modifié le code, mais cela ne semble pas fonctionner comme je l'avais espéré.ExpandableListView ne développant pas les nœuds enfants
Vérités:
Je sais que les données fait son chemin vers le ArrayList, comme je l'impression la taille() et celle-ci apparaît le montant approprié.
L'en-tête de liste apparaît, et je peux le tapoter, ce qui retourne la carotte (^) à l'envers. J'utilise 3 Fragments et montre une mise en page basée sur la sélection de Fragment. J'aimerais avoir une liste extensible par fragment, et je pense que c'est faisable. Class ExpandableListA a fonctionné pour moi dans le passé et je n'ai pas modifié le code, donc je suppose que ce n'est pas le problème.
Sélection d'un fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup rootView;
TextView tv;
switch(getPageNumber()){
default:
case 0:
rootView = (ViewGroup) inflater.inflate(R.layout.fragment_today, container, false);
tv = (TextView)rootView.findViewById(R.id.today_frag_tv);
tv.append(todays_data[0]);
expandable_list(todays_data, rootView);
break;
case 1:
rootView = (ViewGroup) inflater.inflate(R.layout.fragment_specials, container, false);
tv = (TextView)rootView.findViewById(R.id.specials_frag_tv);
// will figure this out
break;
case 2:
rootView = (ViewGroup) inflater.inflate(R.layout.fragment_business, container, false);
tv = (TextView)rootView.findViewById(R.id.biz_frag_tv);
// will figure this out
break;
}
return rootView;
}
Déterminer la liste extensible
public void expandable_list(final String biz_data[], ViewGroup rootView){
// get the listview
expListView = (ExpandableListView) rootView.findViewById(R.id.lvExpToday);
// preparing list data
prepareListData(biz_data);
//
listAdapter = new ExpandableListA(getActivity(), listDataHeader, listDataChild);
// setting list adapter
expListView.setAdapter(listAdapter);
}
private void prepareListData(String biz_data[]) {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
// Adding child data
listDataHeader.add(biz_data[0]);
Log.d("b_d length: ", Integer.toString(biz_data.length));
// Adding child data
List<String> mon = new ArrayList<String>();
for (int i = 1; i < biz_data.length;i++)
mon.add(biz_data[i]);
Log.d("mon length: ", Integer.toString(mon.size()));
listDataChild.put(listDataHeader.get(0), mon); // Header, Child data
}