【发布时间】:2015-09-14 06:34:45
【问题描述】:
我在之前的活动中有一个可扩展列表,但我决定采用不同的路线(片段),并想复制可扩展列表的想法。所以我复制/修改了代码,但它似乎并没有像我希望的那样工作。
真相:
我知道数据正在进入 ArrayList,因为我正在打印 size() 并显示适当的数量。
列表标题出现了,我可以点击它,将胡萝卜(^)翻转过来。
我正在使用 3 个 Fragment,并显示基于所选 Fragment 的布局。我希望每个片段有一个可扩展列表,我认为这是可行的。
类 ExpandableListA 过去曾为我工作过,我没有更改任何代码,所以我认为这不是问题。
选择片段
@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;
}
找出可展开的列表
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
}
【问题讨论】:
标签: android android-fragments expandablelistview expandablelistadapter