二级列表首先需要 一个组的集合 其次还需要一个子集合
List<String> group; //组列表
List<List<String>> child; //子列表ContactsInfoAdapter adapter; //数据适配器
private ExpandableListView listView;
/**
* 初始化组、子列表数据
*/
private void initializeData(){
group = new ArrayList<String>();
child = new ArrayList<List<String>>();
addInfo("Andy",new String[]{"male","138123***","GuangZhou"});
addInfo("Fairy",new String[]{"female","138123***","GuangZhou"});
addInfo("Jerry",new String[]{"male","138123***","ShenZhen"});
addInfo("Tom",new String[]{"female","138123***","ShangHai"});
addInfo("Bill",new String[]{"male","138231***","ZhanJiang"});
}
/**
* 模拟给组、子列表添加数据
* @param g-group
* @param c-child
*/
private void addInfo(String g,String[] c){
group.add(g);
List<String> childitem = new ArrayList<String>();
for(int i=0;i<c.length;i++){
childitem.add(c[i]);
}
child.add(childitem);
}
、、、、、、适配器s
class ContactsInfoAdapter extends BaseExpandableListAdapter {
@Override
public int getGroupCount() {
return group.size();
}
@Override
public int getChildrenCount(int i) {
return child.size();
}
@Override
public Object getGroup(int i) {
return group.get(i);
}
@Override
public Object getChild(int i, int i1) {
return child.get(i).get(i1);
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i1) {
return i1;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
TextView text=null;
if (view==null){
text=new TextView(MainActivity.this);
}else {
text= (TextView) view;
text.setText(group.get(i));
text.setTextSize(20);
text.setPadding(36,10,0,10);//设置text的位置
}
return text;
}
@Override
public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
TextView text=null;
if (view==null){
text=new TextView(MainActivity.this);
}else {
text= (TextView) view;
text.setText(child.get(i).get(i1));
text.setTextSize(20);
text.setPadding(72,10,0,10);
}
return text;
}
// 返回的必须为true 组的集合可以选择 查看子列表
@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
}