1.自定义ExpandableListView
<ExpandableListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="@android:color/transparent"
android:listSelector="@android:color/transparent">
</ExpandableListView>
2.在Activity中使用ExpandableListView
ExpandableListView list = (ExpandableListView) findViewById(android.R.id.list);
3.定义group.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:background="@android:color/transparent"
android:descendantFocusability="blocksDescendants">
<ImageButton
android:id="@+id/group_imagebutton"
android:layout_width="50dp"
android:layout_height="50dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:orientation="vertical">
<TextView
android:id="@+id/group_name"
android:layout_width="160dp"
android:layout_height="20dp"
android:textSize="16sp"/>
<TextView
android:id="@+id/group_dance"
android:layout_width="160dp"
android:layout_height="30dp"
android:textSize="14sp"/>
</LinearLayout>>
</LinearLayout>
4.定义child.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@android:color/transparent"
<TextView
android:id="@+id/child_nation"
android:layout_width="fill_parent"
android:layout_height="20dp"
android:textSize="16sp"/>
<TextView
android:id="@+id/child_intro"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="14sp"/>
</LinearLayout>
5.创建adapter
import java.util.ArrayList;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class TeacherListAdapter extends BaseExpandableListAdapter {
private Context mContext = null;
private ArrayList<TeacherBean> teacherContentList = null;
public TeacherListAdapter(Context context) {
this.mContext = context;
}
public Object getChild(int groupPosition, int childPosition) {
return teacherContentList.get(groupPosition);
}
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
public int getChildrenCount(int groupPosition) {
return 1;
}
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
TextView nation = null;
TextView intro = null;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(
R.layout.child, null);
}
nation = (TextView) convertView.findViewById(R.id.child_nation);
intro = (TextView) convertView.findViewById(R.id.child_intro);
TeacherBean context = teacherContentList.get(groupPosition);
nation.setText(context.getNation());
intro.setText(context.getIntro());
return convertView;
}
public Object getGroup(int groupPosition) {
return teacherContentList.get(groupPosition);
}
public int getGroupCount() {
return teacherContentList.size();
}
public long getGroupId(int groupPosition) {
return groupPosition;
}
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
ImageView image = null;
TextView name = null;
TextView dance = null;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(
R.layout.group, null);
}
image = (ImageView) convertView.findViewById(R.id.group_imagebutton);
name = (TextView) convertView.findViewById(R.id.group_name);
dance = (TextView) convertView.findViewById(R.id.group_dance);
TeacherBean context = teacherContentList.get(groupPosition);
name.setText(context.getName());
dance.setText(context.getDance());
image.setImageDrawable(context.getImage());
return convertView;
}
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
public boolean hasStableIds() {
return true;
}
}