This is what my application looks like using expanable listview to read data from database and then displaying it, the range is for 3 month or 12 weeks! now what i want is to display only content of every week !! i dont want to display the WEEK label! for example if there is any data during this 12 weeks we will display it ( but just with day label and data description) but if not we want to display nothing!! ( not display the Weeks!) and also i want to disable the collapsing of each item.

this is my adapter
public class MyCareHeaderExpandableListAdapter extends MyCareExpandableListAdapter {
public MyCareHeaderExpandableListAdapter(Context context) {
super(context);
}
//--------------------------------------------------------------------
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
//Log.d("getChildView", "getChildView " + groupPosition);
//View view = adapter.getView(childPosition, convertView, parent);
Item item = getChild(groupPosition, childPosition);
return setContentView(R.layout.expandable_list_item, convertView, item);
}
//--------------------------------------------------------------------
@Override
public long getChildId(int groupPosition, int childPosition) {
int id = ((ScheduleItem)m_childrens.get(groupPosition).getItem(childPosition)).getID();
return id;
}
//--------------------------------------------------------------------
/**
* This function is called to generate the view for the groups.
*/
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
String name[] = getGroup(groupPosition);
// Generating header
// A header has no child, and begins the name with "Week"
//if (getChildrenCount(groupPosition) == 0 && (name[1] == null)) {
if (name[1] == null) {
convertView = m_inflater.inflate(R.layout.expandable_list_week, null);
TextView textView = (TextView)convertView.findViewById(R.id.txtHeader);
Font.setToView(textView, Font.BOLD);
textView.setText(name[0]);
}
// Generating group name
else {
//Log.d("getGroupView", name);
convertView = m_inflater.inflate(R.layout.expandable_list_group, null);
TextView textView = (TextView)convertView.findViewById(R.id.txtDay);
textView.setText(name[0]);
Font.setToView(textView, Font.BOLD);
TextView textView2 = (TextView)convertView.findViewById(R.id.txtDate);
textView2.setText(name[1]);
Font.setToView(textView2, Font.BOLD);
}
return convertView;
}
Two issues you are dealing with:
(1) don’t display group view for weeks with no entries
For this, I suggest modifying your group cursor query such that it does not return a cursor with entries for “empty” weeks.
(2) don’t allow users to collapse groups
For this same purpose, I implemented the
OnGroupClickListenerto intercept the group clicks and essentially do nothing with it. This allows me to control when the groups are expanded or collapsed. Here my listener implementation:Edit:
To have all the groups expanded: