title: How to further expand a child in expandable listview
body: <p>I am using an expandable listview in my application. It has 4 parents. 1st parent has 5 children and rest of the parents have zero child. I want 1st parent's 3rd child to expand more i.e. to have further children.</p>
  
  <p>How can I achieve this?</p>
  
  <p><strong>strings.xml</strong></p>
  
  <pre><code>&lt;resources&gt;
  
      &lt;string-array name="exp_listview_header_titles"&gt;
          &lt;item&gt;BASIC FEATURES&lt;/item&gt;  &lt;!-- 1st parent --&gt;
          &lt;item&gt;ABOUT US&lt;/item&gt;
          &lt;item&gt;MORE APPLICATIONS&lt;/item&gt;
          &lt;item&gt;RATE US&lt;/item&gt;
      &lt;/string-array&gt;
  
      &lt;string-array name="basic_features"&gt;
          &lt;item&gt;Torch&lt;/item&gt;
          &lt;item&gt;SoS&lt;/item&gt;
          &lt;item&gt;Screen Color&lt;/item&gt;   &lt;!-- 3rd child --&gt;
          &lt;item&gt;Notification Bar Widget&lt;/item&gt;
          &lt;item&gt;Screen Widget&lt;/item&gt;
      &lt;/string-array&gt;
  
  &lt;!-- 3rd child further children --&gt;
  &lt;string-array name="colors"&gt;
          &lt;item&gt;Red&lt;/item&gt;
          &lt;item&gt;Green&lt;/item&gt;
          &lt;item&gt;Blue&lt;/item&gt;
      &lt;/string-array&gt;
  
  &lt;/resources&gt;
  </code></pre>
  
  <p><strong>Main Activity.Java</strong></p>
  
  <pre><code>expandableListView = (ExpandableListView) findViewById(R.id.exp_listview);
  
      HashMap&lt;String,List&lt;String&gt;&gt; Parent_Child_HashMap = new HashMap&lt;String,List&lt;String&gt;&gt;();
  
      List&lt;String&gt; header_titles_list = new ArrayList&lt;String&gt;();
  
      List&lt;String&gt; action_items_list = new ArrayList&lt;String&gt;();
  
      List&lt;String&gt; empty_list = new ArrayList&lt;String&gt;();
  
      String header_titles[] = getResources().getStringArray(R.array.exp_listview_header_titles);
  
      String basic_features[] = getResources().getStringArray(R.array.basic_features);
  
      for(String title : header_titles)
      {
          header_titles_list.add(title);
      }
  
      for(String title : basic_features)
      {
          action_items_list.add(title);
      }
  
      Parent_Child_HashMap.put(header_titles_list.get(0),action_items_list);
      Parent_Child_HashMap.put(header_titles_list.get(1),empty_list);
      Parent_Child_HashMap.put(header_titles_list.get(2),empty_list);
      Parent_Child_HashMap.put(header_titles_list.get(3),empty_list);
  
      Exp_listview_adapter exp_listview_adapter = new Exp_listview_adapter(this,header_titles_list,Parent_Child_HashMap);
      expandableListView.setAdapter(exp_listview_adapter);
      expandableListView.expandGroup(0);
  </code></pre>
  
  <p><strong>Expandable Listview Adapter.Java</strong></p>
  
  <pre><code>public class Exp_listview_adapter extends BaseExpandableListAdapter {
  
      private List&lt;String&gt; header_titles;
      private HashMap&lt;String,List&lt;String&gt;&gt; child_titles; //for representing child item with heading
      private Context ctx;
  
      Exp_listview_adapter(Context ctx, List&lt;String&gt; header_titles, HashMap&lt;String, List&lt;String&gt;&gt; child_titles)
      {
          this.ctx = ctx;
          this.header_titles = header_titles;
          this.child_titles = child_titles;
      }
  
      @Override
      public int getGroupCount() {
          return header_titles.size();
      }
  
      @Override
      public int getChildrenCount(int groupPosition) {
          return child_titles.get(header_titles.get(groupPosition)).size();
      }
  
      @Override
      public Object getGroup(int groupPosition) {
          return header_titles.get(groupPosition);
      }
  
      @Override
      public Object getChild(int groupPosition, int childPosition) {
          return child_titles.get(header_titles.get(groupPosition)).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) {
  
          String title = (String)this.getGroup(groupPosition);
  
  
          if(convertView == null){
  
              LayoutInflater layoutInflater =(LayoutInflater) this.ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
              convertView = layoutInflater.inflate(R.layout.exp_listview_header,null);
          }
  
          return convertView;
      }
  
      @Override
      public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
  
          String title = (String) this.getChild(groupPosition, childPosition);
  
          if(convertView == null){
  
              LayoutInflater layoutInflater = (LayoutInflater)this.ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
              convertView = layoutInflater.inflate(R.layout.exp_listview_header_items, null);
          }
  
          return convertView;
      }
  
      @Override
      public boolean isChildSelectable(int groupPosition, int childPosition) {
          return true;
      }
  }
  </code></pre>
  
  <p>I want <strong>Screen Color</strong> child to have more children. How can I achieve this? I have no idea how to do this. Any help would be appreciated.</p>