布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ExpandableListView
android:id="@+id/ev"
android:layout_width="match_parent"
android:layout_height="match_parent"></ExpandableListView>
</LinearLayout>
Activity
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;
public class MainActivity extends Activity {
private ExpandableListView ev;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ev = (ExpandableListView) findViewById(R.id.ev);
ev.setAdapter(new MyAdapter());
}
//Position从0开始
private class MyAdapter extends BaseExpandableListAdapter{
//返回分组的个数
public int getGroupCount() {
return 5;
}
//返回每个分组里要显示的个数
public int getChildrenCount(int groupPosition) {
return 3;
}
//返回某个分组对象(用不到)
public Object getGroup(int groupPosition) {
return null;
}
//返回某个分组下的子节点(用不到)
public Object getChild(int groupPosition, int childPosition) {
return null;
}
//获取分组id,一般用分组的索引
public long getGroupId(int groupPosition) {
return groupPosition;
}
//获取子条目id groupPosition 分组的索引 childPosition子条目的id
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
//如果你用position当id ,那就是不稳定的,如果有自己特定的id那就是稳定的 就是干这个用的 true稳定 false不稳定
public boolean hasStableIds() {
return false;
}
//返回某个位置分组显示的内容
public View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {
TextView tv = new TextView(getApplicationContext());
tv.setTextSize(30);
tv.setText(" 标题"+groupPosition);
return tv;
}
//返回某个分组的某个子节点的View对象
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
TextView tv = new TextView(getApplicationContext());
tv.setTextSize(15);
tv.setText(" 内容"+childPosition);
return tv;
}
//返回子节点是否可以被点击 默认是false
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
}