package com.rak.letmeknow; import java.util.ArrayList; import com.rak.letmeknow.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.CheckBox; import android.widget.TextView; public class MyGroupsAdapter extends BaseExpandableListAdapter { private Context context; private ArrayList<String> groups; private ArrayList<ArrayList<Group>> mygroups; private LayoutInflater inflater; public MyGroupsAdapter(Context context, ArrayList<String> groups, ArrayList<ArrayList<Group>> mygroups ) { this.context = context; this.groups = groups; this.mygroups = mygroups; inflater = LayoutInflater.from( context ); } public Object getChild(int groupPosition, int childPosition) { return mygroups.get( groupPosition ).get( childPosition ); } public long getChildId(int groupPosition, int childPosition) { return (long)( groupPosition*1024+childPosition ); // Max 1024 children per group } public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { View v = null; if( convertView != null ) v = convertView; else v = inflater.inflate(R.layout.child_row, parent, false); Group c = (Group)getChild( groupPosition, childPosition ); TextView event = (TextView)v.findViewById( R.id.childname ); if( event != null ) event.setText( c.getEvent() ); CheckBox cb = (CheckBox)v.findViewById( R.id.check1 ); cb.setChecked( c.getState() ); return v; } public void changeClickStatus(View v) { System.out.println(v.getClass()); } public int getChildrenCount(int groupPosition) { return mygroups.get( groupPosition ).size(); } public Object getGroup(int groupPosition) { return groups.get( groupPosition ); } public int getGroupCount() { return groups.size(); } public long getGroupId(int groupPosition) { return (long)( groupPosition*1024 ); // To be consistent with getChildId } public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { View v = null; if( convertView != null ) v = convertView; else v = inflater.inflate(R.layout.group_row, parent, false); String gt = (String)getGroup( groupPosition ); TextView eventGroup = (TextView)v.findViewById( R.id.childname ); if( gt != null ) eventGroup.setText( gt ); return v; } public boolean hasStableIds() { return true; } public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } public void onGroupCollapsed (int groupPosition) { } public void onGroupExpanded(int groupPosition) { } }