/** Helper Method to create Demo Groups and Children */
  private void initDemoData() {
    this.groups = new ArrayList<GroupClass>();

    for (int groupCounter = 1; groupCounter <= 25; groupCounter++) {
      GroupClass group = new GroupClass("Group " + groupCounter);

      // Just a little trick to get a different number of children per group
      int numberOfChildren = (23 % groupCounter) + 2;

      for (int childCounter = 0; childCounter < numberOfChildren; childCounter++) {
        ChildClass child =
            new ChildClass(
                "Child " + childCounter,
                "Text for Child "
                    + childCounter
                    + " Text for Child "
                    + childCounter
                    + " Text for Child "
                    + childCounter
                    + " Text for Child "
                    + childCounter
                    + " Text for Child "
                    + childCounter);

        group.addChild(child);
      }

      this.groups.add(group);
    }
  }
  @Override
  public boolean onMenuItemSelected(int featureId, MenuItem item) {
    if (item.getItemId() == R.id.add_item) {
      GroupClass newGroup = new GroupClass("New Group " + System.currentTimeMillis());
      newGroup.addChild(new ChildClass("New Child", "Child Text: " + System.currentTimeMillis()));
      this.groups.add(0, newGroup);

      this.adapter.notifyDataSetChanged();

      return true;
    } else if (item.getItemId() == R.id.remove_item) {
      this.groups.remove(0);

      this.adapter.notifyDataSetChanged();

      return true;
    } else {
      return super.onMenuItemSelected(featureId, item);
    }
  }