Expandable ListView Android

Welcome to Android ExpandableListView Example Tutorial. In this tutorial we’ll implement an ExpandableListView which is used to group list data by categories. It’s sort of menu and submenus in a Android ListView.

output :

Android ExpandableListView is a view that shows items in a vertically scrolling two-level list. It differs from a ListView by allowing two levels which are groups that can be easily expanded and collapsed by touching to view and their respective children items.

ExpandableListViewAdapter in android loads the data into the items associated with this view.


ExpandableListView expa;
ArrayList<String> list=newArrayList<>();
HashMap<String, ArrayList<String>> listChild=newHashMap<>();
expa = findViewById( R.id.exlist );
list.add( "Machine Learning" ); 
       list.add( "Android" );   
       list.add( "Java" );  
       list.add( "C++" );   
       list.add( "Programming" ); 
       list.add( "R language " );
ArrayList<String> arraylist = new ArrayList<>();
        for(int i=0;i<=4;i++)
arraylist.add( "10:20 AM"+i );  
public class MainAdapter extends BaseExpandableListAdapter
List<String> list;HashMap<String, ArrayList<String>> listChild
public Main Adapter( List<String>list, HashMap<String, ArrayList<String>>  listChild)    {
{return list.size();    }
 public  intgetChildrenCount(intgroupPosition) 
return listChild.get( list.get( groupPosition ) ).size();   
public Objectget Group(intgroupPosition) 
{ return list.get( groupPosition );    
public Object getChild(intgroupPosition, intchildPosition)
 return listChild.get( list.get( groupPosition ) ).get( childPosition ); 
public longgetGroupId(intgroupPosition) 
 return groupPosition;  
public longgetChildId(intgroupPosition, intchildPosition)
return childPosition;  
public boolean hasStableIds()
return false;    


public  ViewgetGroupView(final int groupPosition, boolean isExpanded, View convertView, final ViewGroup parent)
 {// initialize value  
      convertView=LayoutInflater.from( parent.getContext() ).inflate( 
   android.R.layout.simple_expandable_list_item_1,parent,false );
TextView  textView=convertView.findViewById( android.R.id.text1 );
stringString sGroup =String.valueOf( getGroup( groupPosition ) );
//set Text view   
   textView.setText( sGroup );  
     textView.setTypeface( null, Typeface.BOLD );   
     textView.setTextColor( Color.BLUE );return convertView;    }
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, finalViewGroup parent) 

{//initialise view 
 convertView=LayoutInflater.from( parent.getContext()).inflate(android.R.layout.simple_selectable_list_item,parent,false);
TextView textView=convertView.findViewById( android.R.id.text1 );
finalString schild=String.valueOf( getChild( groupPosition,childPosition ) );
// set on text view        
textView.setText( schild );   

     textView.setOnClickListener( newView.OnClickListener() 

Toast.makeText( parent.getContext(), schild, Toast.LENGTH_SHORT ).show();        
   } );
return convertView;
  public boolean isChildSelectable(intgroupPosition, intchildPosition) 
return true;  


Contact us for andriod assignment Solutions by Codersarts Specialist who can help you mentor and guide for such assignments. CONTACT US TODAY

Contact Us

Tel: (+91) 0120  4118730  

Time :   10 : 00  AM -  08 : 00 PM IST 

Registered address: G-69, Sector 63, 

 Noida - 201301, India

We Provide Services Across The different countries

USA    Australia   Canada   UK    UAE    Singapore   New Zealand    Malasia   India   Ireland   Germany

Terms and Conditions        Privacy Policy    Pricing Policy       Refund Policy         COPYRIGHT © 2021

Sofstack Technology Solutions Pvt. Ltd.

  • CodersArts | Linkedin
  • Instagram