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.


MainActivity




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 );  
 }
Adapter.java
public class MainAdapter extends BaseExpandableListAdapter
 { 
List<String> list;HashMap<String, ArrayList<String>> listChild
;
public Main Adapter( List<String>list, HashMap<String, ArrayList<String>>  listChild)    {
this.list=list;
this.listChild=listChild;   
 }
@OverridepublicintgetGroupCount() 
{return list.size();    }
@Override
 public  intgetChildrenCount(intgroupPosition) 
{ 
return listChild.get( list.get( groupPosition ) ).size();   
 }
@Override
public Objectget Group(intgroupPosition) 
{ return list.get( groupPosition );    
}
@Override
public Object getChild(intgroupPosition, intchildPosition)
 {
 return listChild.get( list.get( groupPosition ) ).get( childPosition ); 
   }
@Override
public longgetGroupId(intgroupPosition) 
{
 return groupPosition;  
  }
@Override
public longgetChildId(intgroupPosition, intchildPosition)
 {
return childPosition;  
 }
@Override
public boolean hasStableIds()
 { 
return false;    
}

@Override

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 );
//initialise 
stringString sGroup =String.valueOf( getGroup( groupPosition ) );
//set Text view   
   textView.setText( sGroup );  
     textView.setTypeface( null, Typeface.BOLD );   
     textView.setTextColor( Color.BLUE );return convertView;    }
@Override 
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() 
{

@Override
publicvoidonClick(View)
 {
Toast.makeText( parent.getContext(), schild, Toast.LENGTH_SHORT ).show();        
    }     
   } );
return convertView;
    }
@Override
  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