public class Adapter_ExpandableListView extends BaseExpandableListAdapter {
private List<Map<String,String>> parents;
private List<List<Map<String,String>>> childs;
private Context mContext;
public Adapter_ExpandableListView(Context context,List<Map<String,String>> parents, List<List<Map<String,String>>> childs) {
this.mContext=context;
setList(parents,childs);
}
public void setList(List<Map<String,String>> parents, List<List<Map<String,String>>> childs) {
if (parents == null){
this.parents = new ArrayList<Map<String, String>>();
}
else{
this.parents=parents;
}
if (childs == null){
this.childs = new ArrayList<List<Map<String,String>>>();
}
else{
this.childs=childs;
}
this.notifyDataSetChanged();
}
@Override
public int getGroupCount() {
return parents.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return childs.get(groupPosition).size()-1;
}
@Override
public Object getGroup(int groupPosition) {
return parents.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
List<Map<String,String>> child=childs.get(groupPosition);
return child.get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
ViewHolder tag;
if(convertView==null){
tag=new ViewHolder();
convertView = createConvertView(tag);
convertView.setTag(tag);
}else{
tag=(ViewHolder) convertView.getTag();
}
Map<String,String> pt=parents.get(groupPosition);
if(mContext instanceof ResourcesActivity){
tag.tv_carrier.setVisibility(View.GONE);
}else{
tag.tv_carrier.setText(""+pt.get("colum1"));
}
tag.tv_flow.setText(""+pt.get("colum2"));
tag.tv_order.setText(""+pt.get("colum3"));
tag.tv_suc.setText(""+pt.get("colum4"));
tag.tv_percent.setText(""+pt.get("colum5"));
System.out.println(pt.get("colum1")+"==="+pt.get("colum2"));
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
ViewHolder tag;
if(convertView==null){
tag=new ViewHolder();
convertView = createConvertView(tag);
convertView.setTag(tag);
}else{
tag=(ViewHolder) convertView.getTag();
}
List<Map<String,String>> child=childs.get(groupPosition);
Map<String,String> map=child.get(childPosition);
if(mContext instanceof ResourcesActivity)
tag.tv_carrier.setVisibility(View.GONE);
tag.tv_flow.setText(""+map.get("clum1"));
tag.tv_order.setText(""+map.get("clum2"));
tag.tv_suc.setText(""+map.get("clum3"));
tag.tv_percent.setText(""+map.get("clum4"));
tag.tv_flow.setBackgroundColor(mContext.getResources().getColor(R.color.lighter_gray));
tag.tv_order.setBackgroundColor(mContext.getResources().getColor(R.color.lighter_gray));
tag.tv_suc.setBackgroundColor(mContext.getResources().getColor(R.color.lighter_gray));
tag.tv_percent.setBackgroundColor(mContext.getResources().getColor(R.color.lighter_gray));
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
private View createConvertView(ViewHolder tag) {
View convertView=LayoutInflater.from(mContext).inflate(R.layout.listview_iten_partener, null);
tag.tv_carrier=(TextView) convertView.findViewById(R.id.partner_listview_item_operator);
tag.tv_flow=(TextView) convertView.findViewById(R.id.partner_listview_item_flow);
tag.tv_order=(TextView) convertView.findViewById(R.id.partner_listview_item_processingorders);
tag.tv_suc=(TextView) convertView.findViewById(R.id.partner_listview_item_successorders);
tag.tv_percent=(TextView) convertView.findViewById(R.id.partner_listview_item_successrate);
return convertView;
}
class ViewHolder{
public TextView tv_carrier;
public TextView tv_flow;
public TextView tv_order;
public TextView tv_suc;
public TextView tv_percent;
}
}
这是双层list的adapter,求大神帮我看一看哪快错了。