How to add data to the Expandable listview with child having multiple views <p>I referred this tutorial for expandable listview</p> <p><a href="http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/" rel="nofollow">http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/</a></p> <p>My main activity</p> <pre><code> BusActivity extends Activity { ExpandableListAdapter listAdapter; ExpandableListView expListView; List&lt;String&gt; listDataHeader; HashMap&lt;String, List&lt;String&gt;&gt; listDataChild,listDataStart,listDataEnd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // get the listview expListView = (ExpandableListView) findViewById(R.id.lvExp); // preparing list data prepareListData(); listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild,listDataStart,listDataEnd); // setting list adapter expListView.setAdapter(listAdapter); // Listview Group click listener expListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { // Toast.makeText(getApplicationContext(), // "Group Clicked " + listDataHeader.get(groupPosition), // Toast.LENGTH_SHORT).show(); return false; } }); // Listview Group expanded listener expListView.setOnGroupExpandListener(new OnGroupExpandListener() { @Override public void onGroupExpand(int groupPosition) { Toast.makeText(getApplicationContext(), listDataHeader.get(groupPosition) + " Expanded", Toast.LENGTH_SHORT).show(); } }); // Listview Group collasped listener expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() { @Override public void onGroupCollapse(int groupPosition) { Toast.makeText(getApplicationContext(), listDataHeader.get(groupPosition) + " Collapsed", Toast.LENGTH_SHORT).show(); } }); // Listview on child click listener expListView.setOnChildClickListener(new OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // TODO Auto-generated method stub Toast.makeText( getApplicationContext(), listDataHeader.get(groupPosition) + " : " + listDataChild.get( listDataHeader.get(groupPosition)).get( childPosition), Toast.LENGTH_SHORT) .show(); return false; } }); } /* * Preparing the list data */ private void prepareListData() { listDataHeader = new ArrayList&lt;String&gt;(); listDataChild = new HashMap&lt;String, List&lt;String&gt;&gt;(); listDataStart = new HashMap&lt;String, List&lt;String&gt;&gt;(); listDataEnd = new HashMap&lt;String, List&lt;String&gt;&gt;(); // Adding child data listDataHeader.add("Volvo"); listDataHeader.add("Deluxe"); listDataHeader.add("Express"); listDataHeader.add("Ordinary"); // Adding child data List&lt;String&gt; volvo = new ArrayList&lt;String&gt;(); volvo.add("The Shawshank Redemption"); volvo.add("The Godfather"); volvo.add("The Godfather: Part II"); volvo.add("Pulp Fiction"); List&lt;String&gt; nowShowing = new ArrayList&lt;String&gt;(); nowShowing.add("The Conjuring"); nowShowing.add("Despicable Me 2"); nowShowing.add("Turbo"); nowShowing.add("Grown Ups 2"); List&lt;String&gt; now = new ArrayList&lt;String&gt;(); now.add("The Conjuring"); now.add("Despicable Me 2"); now.add("Turbo"); now.add("Grown Ups 2"); List&lt;String&gt; comingSoon = new ArrayList&lt;String&gt;(); comingSoon.add("2 Guns"); comingSoon.add("The Smurfs 2"); comingSoon.add("The Spectacular Now"); comingSoon.add("The Canyons"); List&lt;String&gt; comingup = new ArrayList&lt;String&gt;(); comingup.add("2 Guns"); comingup.add("The Smurfs 2"); comingup.add("The Spectacular Now"); comingup.add("The Canyons"); listDataChild.put(listDataHeader.get(0), volvo); // Header, Child data listDataChild.put(listDataHeader.get(1), now); listDataStart.put(listDataHeader.get(0), nowShowing); // Header, Child data listDataStart.put(listDataHeader.get(1), comingup); ); listDataEnd.put(listDataHeader.get(0), volvo); // Header, Child data listDataEnd.put(listDataHeader.get(2), comingSoon); } </code></pre> <p>}</p> <p>My Adapter</p> <pre><code>public class ExpandableListAdapter extends BaseExpandableListAdapter { private Context _context; private List&lt;String&gt; _listDataHeader; // header titles // child data in format of header title, child title private HashMap&lt;String, List&lt;String&gt;&gt; _listDataChild,listStart,listEnd; public ExpandableListAdapter(Context context, List&lt;String&gt; listDataHeader, HashMap&lt;String, List&lt;String&gt;&gt; listChildData,HashMap&lt;String, List&lt;String&gt;&gt; listStart, HashMap&lt;String, List&lt;String&gt;&gt; listEnd) { this._context = context; this._listDataHeader = listDataHeader; System.out.println("Start"+listStart+"Bus"+listChildData+"End"+listEnd); this._listDataChild = listChildData; this.listStart=listStart; this.listEnd=listEnd; } @Override public Object getChild(int groupPosition, int childPosititon) { return this._listDataChild.get(this._listDataHeader.get(groupPosition)) .get(childPosititon); } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { final String childText = (String) getChild(groupPosition, childPosition); System.out.println("Child Text"+childText); if (convertView == null) { LayoutInflater infalInflater = (LayoutInflater) this._context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = infalInflater.inflate(R.layout.list_item, null); } TextView txtListBus= (TextView) convertView .findViewById(R.id.txt_busno); if(groupPosition==0) { //txtListBus.setBackgroundColor(Color.parseColor("#FED966")); //txtListBus.setTextColor(Color.parseColor("#A07900")); } else if(groupPosition==1) { txtListBus.setBackgroundColor(Color.parseColor("#FED966")); txtListBus.setTextColor(Color.parseColor("#A07900")); } else if(groupPosition==2) { txtListBus.setBackgroundColor(Color.RED); txtListBus.setTextColor(Color.BLACK); } else { txtListBus.setBackgroundColor(Color.BLUE); txtListBus.setTextColor(Color.WHITE); } txtListBus.setText(childText); TextView txtList= (TextView) convertView .findViewById(R.id.txt_start); if(groupPosition==0) { txtList.setBackgroundColor(Color.parseColor("#FED966")); txtList.setTextColor(Color.parseColor("#A07900")); } else if(groupPosition==1) { txtList.setBackgroundColor(Color.parseColor("#64D8CD")); txtList.setTextColor(Color.parseColor("#067B6F")); } else if(groupPosition==2) { txtList.setBackgroundColor(Color.RED); txtList.setTextColor(Color.BLACK); } else { txtList.setBackgroundColor(Color.BLUE); txtList.setTextColor(Color.WHITE); } txtList.setText(childText); TextView txt= (TextView) convertView .findViewById(R.id.txt_end); if(groupPosition==0) { txt.setBackgroundColor(Color.parseColor("#FED966")); txt.setTextColor(Color.parseColor("#A07900")); } else if(groupPosition==1) { txt.setBackgroundColor(Color.parseColor("#64D8CD")); txt.setTextColor(Color.parseColor("#067B6F")); } else if(groupPosition==2) { txt.setBackgroundColor(Color.RED); txt.setTextColor(Color.BLACK); } else { txt.setBackgroundColor(Color.BLUE); txt.setTextColor(Color.WHITE); } txt.setText(childText); return convertView; } @Override public int getChildrenCount(int groupPosition) { return this._listDataChild.get(this._listDataHeader.get(groupPosition)) .size(); } @Override public Object getGroup(int groupPosition) { return this._listDataHeader.get(groupPosition); } @Override public int getGroupCount() { return this._listDataHeader.size(); } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { String headerTitle = (String) getGroup(groupPosition); System.out.println("Group position"+groupPosition); if (convertView == null) { LayoutInflater infalInflater = (LayoutInflater) this._context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = infalInflater.inflate(R.layout.list_group, null); } TextView lblListHeader = (TextView) convertView .findViewById(R.id.ls_head); lblListHeader.setTypeface(null, Typeface.BOLD); lblListHeader.setText(headerTitle); if(groupPosition==0) { lblListHeader.setBackgroundColor(Color.parseColor("#FFD243")); lblListHeader.setTextColor(Color.parseColor("#A07900")); } else if(groupPosition==1) { lblListHeader.setBackgroundColor(Color.parseColor("#00BFAC")); lblListHeader.setTextColor(Color.parseColor("#067B6F")); } else if(groupPosition==2) { lblListHeader.setBackgroundColor(Color.RED); lblListHeader.setTextColor(Color.BLACK); } else { lblListHeader.setBackgroundColor(Color.BLUE); lblListHeader.setTextColor(Color.WHITE); } return convertView; } @Override public boolean hasStableIds() { return false; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } </code></pre> <p>}</p> <p>list_item layout </p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="55dp" android:orientation="vertical" &gt; &lt;LinearLayout android:layout_width="match_parent" android:layout_height="55dp" android:background="#fff" android:orientation="horizontal" &gt; &lt;TextView android:id="@+id/txt_start" android:layout_width="130dp" android:layout_height="match_parent" android:text="Hello" android:gravity="right|center_vertical" android:textColor="#000" android:textSize="17dp" /&gt; &lt;LinearLayout android:layout_width="50dp" android:layout_height="55dp" android:background="@drawable/ic_launcher" android:orientation="horizontal" &gt; &lt;TextView android:id="@+id/txt_busno" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textAppearance="?android:attr/textAppearanceLarge" /&gt; &lt;/LinearLayout&gt; &lt;TextView android:id="@+id/txt_end" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:text="Hello" android:textColor="#000" android:textSize="17dp" /&gt; &lt;/LinearLayout&gt; </code></pre> <p></p> <p>list_group remains same as the link</p> <p>In this the child list have only a textview. I want to add an imageview and a textview to the child list. I am able to add this by changing the list_item.xml to contain the views. How can i add data to this child view that has multiple views?</p>