首先新建一个adapter类继承BaseExpandableListAdapter
import android.content.Context;
import android.graphics.Color;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;
public class ExpandalerAdapter extends BaseExpandableListAdapter{
private String group[] = new String[]{
"我的好友","college",
"senior","classes",
"folks","primary",
"friends","College","teacher"};
private String child[][] = new String[][]{
{"陈君蕾","崔雅洁","风情","简简单单","李艳茹"},
{"稍远","王刚","杨芬","王洋","陈慧","付芳芳"},
{"猴子","王忍","蔡瑞雪","陈璇","丁作声","耗子"},
{"李超","于洋","永杰","王雪茹","曲梅梅","李若男"},
{"大哥","二哥","姐","表姐","岩岩","灿灿","想想"},
{"胡梅","慧慧","陈继秋","高攀","龙强","陆梅"},
{"成为","青梅","葛新伟","亚洲"},
{"王威","王立波","李志仁","张杰","万京","张开成"},
{"陈全","赵峰","周传华","潘教授"}
};
private Context context = null;
public ExpandalerAdapter(Context context) {
this.context = context;
}
@Override
public int getGroupCount() {
return group.length;
}
@Override
public int getChildrenCount(int groupPosition) {
return child[groupPosition].length;
}
@Override
public Object getGroup(int groupPosition) {
return group[groupPosition];
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return child[groupPosition][childPosition];
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
TextView textView = buildTextView();
textView.setText(this.getGroup(groupPosition).toString());
return textView;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
TextView textView = buildTextView();
textView.setText(this.getChild(groupPosition, childPosition).toString());
return textView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
private TextView buildTextView(){
TextView textView = new TextView(context);
AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 35);
textView.setLayoutParams(layoutParams);
textView.setTextSize(15.f);
textView.setGravity(Gravity.CENTER);
textView.setPadding(40, 8, 3, 3) ;
return textView;
}
}
在activity中实现展示
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.Toast;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ExpandableListView.OnGroupClickListener;
import android.widget.ExpandableListView.OnGroupCollapseListener;
import android.widget.ExpandableListView.OnGroupExpandListener;
public class MainActivity extends Activity {
private ExpandableListView listView = null;
private ExpandalerAdapter adapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ExpandableListView)this.findViewById(R.id.expandablelistview);
adapter = new ExpandalerAdapter(this);
listView.setAdapter(adapter);
this.registerForContextMenu(listView);//可以去掉这个看下效果如何
listView.setOnChildClickListener(new OnChildClickListenerImpl());
listView.setOnGroupClickListener(new OnGroupClickListenerImpl());
listView.setOnGroupCollapseListener(new OnGroupCollapseListenerImpl());
listView.setOnGroupExpandListener(new OnGroupExpandListenerImpl());
}
private class OnChildClickListenerImpl implements OnChildClickListener{
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
Toast.makeText(MainActivity.this, "子项被选中:所在组"+groupPosition+"所在child"+childPosition, Toast.LENGTH_SHORT).show();
return false;
}
}
private class OnGroupClickListenerImpl implements OnGroupClickListener{
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
Toast.makeText(MainActivity.this, "组被选中:所在组"+groupPosition, Toast.LENGTH_SHORT).show();
return false;
}
}
private class OnGroupCollapseListenerImpl implements OnGroupCollapseListener{
@Override
public void onGroupCollapse(int groupPosition) {
Toast.makeText(MainActivity.this, "组被选中:所在组"+groupPosition+"组关闭", Toast.LENGTH_SHORT).show();
}
}
private class OnGroupExpandListenerImpl implements OnGroupExpandListener{
@Override
public void onGroupExpand(int groupPosition) {
Toast.makeText(MainActivity.this, "组项被选中:所在组"+groupPosition+"被展开", Toast.LENGTH_SHORT).show();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}