package com.smart.framework; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.SimpleExpandableListAdapter; import java.util.ArrayList; import java.util.List; import java.util.Map; public class SmartExpandableListAdapter extends SimpleExpandableListAdapter { private Context context; @SuppressWarnings("unused") private List<? extends Map<String, ?>> groupData; @SuppressWarnings("unused") private int groupLayout; @SuppressWarnings("unused") private String[] groupFrom; @SuppressWarnings("unused") private int[] groupTo; @SuppressWarnings("unused") private List<? extends List<? extends Map<String, ?>>> childData; @SuppressWarnings("unused") private int childLayout; @SuppressWarnings("unused") private String[] childFrom; @SuppressWarnings("unused") private int[] childTo; private ArrayList<SmartExpandableListItem> items; private ExpandableItemView target; private ArrayList<View> childViewSet; private ArrayList<View> groupViewSet; public SmartExpandableListAdapter(Context context, List<? extends Map<String, ?>> groupData, int groupLayout, String[] groupFrom, int[] groupTo, List<? extends List<? extends Map<String, ?>>> childData, int childLayout, String[] childFrom, int[] childTo, ArrayList<SmartExpandableListItem> items, ExpandableItemView target) { super(context, groupData, groupLayout, groupFrom, groupTo, childData, childLayout, childFrom, childTo); this.context = context; this.groupData = groupData; this.groupLayout = groupLayout; this.groupFrom = groupFrom; this.groupTo = groupTo; this.childData = childData; this.childLayout = childLayout; this.childFrom = childFrom; this.childTo = childTo; this.items = items; this.target = target; prepareViewSets(); } private void prepareViewSets() { prepareGroupViewSet(); prepareChildViewSet(); } private void prepareChildViewSet() { childViewSet.clear(); LayoutInflater vi = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); int i = 0; for (SmartExpandableListItem item : items) { View v = vi.inflate(item.getchildItemLayout(), null); target.setItemView(i, v, item); childViewSet.add(v); i++; } } private void prepareGroupViewSet() { groupViewSet.clear(); LayoutInflater vi = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); int i = 0; for (SmartExpandableListItem item : items) { View v = vi.inflate(item.getgroupItemLayout(), null); target.setItemView(i, v, item); groupViewSet.add(v); i++; } } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { return groupViewSet.get(groupPosition); } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { return childViewSet.get(childPosition); } }