Description:
This example shows how to create Expandable list using custom adapter.
Algorithm:
This example shows how to create Expandable list using custom adapter.
Algorithm:
1.) Create a new project by File-> New -> Android Project name it CustomExpandableListExample.
2.) Run for output.
2.) Run for output.
Steps:
1.) Create a project named CustomExpandableListExample and set the information as stated in the image.
1.) Create a project named CustomExpandableListExample and set the information as stated in the image.
Build Target: Android 2.3.3
Application Name: CustomExpandableListExample
Package Name: com.example
Activity Name: CustomExpandableListExampleActivity
Min SDK Version: 10
Application Name: CustomExpandableListExample
Package Name: com.example
Activity Name: CustomExpandableListExampleActivity
Min SDK Version: 10
2.) Open CustomExpandableListExampleActivity.java file and write following code there:
package com.example; import android.app.ExpandableListActivity; import android.os.Bundle; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Gravity; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseExpandableListAdapter; import android.widget.ExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.ExpandableListView.ExpandableListContextMenuInfo; import android.widget.TextView; import android.widget.Toast; public class CustomExpandableListExampleActivity extends ExpandableListActivity { ExpandableListAdapter mAdapter; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); // Set up our adapter mAdapter = new MyExpandableListAdapter(); setListAdapter(mAdapter); registerForContextMenu(getExpandableListView()); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.setHeaderTitle( "Sample menu" ); menu.add( 0 , 0 , 0 , "Sample action" ); } @Override public boolean onContextItemSelected(MenuItem item) { ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo(); String title = ((TextView) info.targetView).getText().toString(); int type = ExpandableListView.getPackedPositionType(info.packedPosition); if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition); Toast.makeText( this , title + ": Child " + childPos + " clicked in group " + groupPos, Toast.LENGTH_SHORT).show(); return true ; } else if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); Toast.makeText( this , title + ": Group " + groupPos + " clicked" , Toast.LENGTH_SHORT).show(); return true ; } return false ; } public class MyExpandableListAdapter extends BaseExpandableListAdapter { // Sample data set. children[i] contains the children (String[]) for groups[i]. private String[] groups = { "Names" , "Designation" , "Gender" , "Company" }; private String[][] children = { { "abc" , "xyz" , "ash" , "anu" }, { "SSE" , "TJ" , "PM" , "SE" }, { "Male" , "Female" }, { "yyyyyy" , "xxxxx" } }; public Object getChild( int groupPosition, int childPosition) { return children[groupPosition][childPosition]; } public long getChildId( int groupPosition, int childPosition) { return childPosition; } public int getChildrenCount( int groupPosition) { return children[groupPosition].length; } public TextView getGenericView() { // Layout parameters for the ExpandableListView AbsListView.LayoutParams lp = new AbsListView.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, 64 ); TextView textView = new TextView(CustomExpandableListExampleActivity. this ); textView.setLayoutParams(lp); // Center the text vertically textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); // Set the text starting position textView.setPadding( 36 , 0 , 0 , 0 ); return textView; } public View getChildView( int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView textView = getGenericView(); textView.setText(getChild(groupPosition, childPosition).toString()); return textView; } public Object getGroup( int groupPosition) { return groups[groupPosition]; } public int getGroupCount() { return groups.length; } public long getGroupId( int groupPosition) { return groupPosition; } public View getGroupView( int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { TextView textView = getGenericView(); textView.setText(getGroup(groupPosition).toString()); return textView; } public boolean isChildSelectable( int groupPosition, int childPosition) { return true ; } public boolean hasStableIds() { return true ; } } } |
3.) Compile and build the project.
No comments:
Post a Comment