public class MainActivity extends ActionBarActivity {
private ExpandableListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(ExpandableListView) findViewById(R.id.expandableListView1);
listView.setAdapter(new myExpandableListViewAdapter());
}
class myExpandableListViewAdapter extends BaseExpandableListAdapter{
private String[] groups={"家人","同学","朋友"};
private String[][] childs={{"老爸","老妈","哥哥","表妹"},{"小端","大端","中端"},{"小明","小红"}};
//获取子列表对象
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childs[groupPosition][childPosition];
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
//重点方法
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
ViewGroup parent) {
if(convertView==null){
convertView=getLayoutInflater().inflate(R.layout.childs_items, null);
}
ImageView iv=(ImageView)convertView.findViewById(R.id.imageView1_childs);
TextView tv=(TextView)convertView.findViewById(R.id.textView1_childs);
tv.setText(childs[groupPosition][childPosition]);
return convertView;
}
//二级列表的数量
@Override
public int getChildrenCount(int groupPosition) {
return childs.length;
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return groups[groupPosition];
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return groups.length;
}
@Override
public long getGroupId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanda, View convertView,
ViewGroup parent) {
if(convertView==null){
//如果没有可以循环的视图,则创建新的对象
convertView=getLayoutInflater().inflate(R.layout.group_item, null);
}
ImageView iv=(ImageView)convertView.findViewById(R.id.imageView1_group);
TextView tv=(TextView)convertView.findViewById(R.id.textView1_group);
//设值
tv.setText(groups[groupPosition]);
return convertView;
}
//值每个列表的id是否是固定的
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return true;
}
//子类表是否是可选
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
}
private ExpandableListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(ExpandableListView) findViewById(R.id.expandableListView1);
listView.setAdapter(new myExpandableListViewAdapter());
}
class myExpandableListViewAdapter extends BaseExpandableListAdapter{
private String[] groups={"家人","同学","朋友"};
private String[][] childs={{"老爸","老妈","哥哥","表妹"},{"小端","大端","中端"},{"小明","小红"}};
//获取子列表对象
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childs[groupPosition][childPosition];
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
//重点方法
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
ViewGroup parent) {
if(convertView==null){
convertView=getLayoutInflater().inflate(R.layout.childs_items, null);
}
ImageView iv=(ImageView)convertView.findViewById(R.id.imageView1_childs);
TextView tv=(TextView)convertView.findViewById(R.id.textView1_childs);
tv.setText(childs[groupPosition][childPosition]);
return convertView;
}
//二级列表的数量
@Override
public int getChildrenCount(int groupPosition) {
return childs.length;
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return groups[groupPosition];
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return groups.length;
}
@Override
public long getGroupId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanda, View convertView,
ViewGroup parent) {
if(convertView==null){
//如果没有可以循环的视图,则创建新的对象
convertView=getLayoutInflater().inflate(R.layout.group_item, null);
}
ImageView iv=(ImageView)convertView.findViewById(R.id.imageView1_group);
TextView tv=(TextView)convertView.findViewById(R.id.textView1_group);
//设值
tv.setText(groups[groupPosition]);
return convertView;
}
//值每个列表的id是否是固定的
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return true;
}
//子类表是否是可选
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
}