您的位置:首页 > 其它

ExpandableListView 动态加载 点击一级菜单时再加载二级菜单的内容实现

2014-10-10 14:19 781 查看
1、加载一级菜单数据

viewAdapter = new ExpandableAdapter(this, groupData);

elv.setAdapter(viewAdapter);

2、响应加载二级菜单数据的监听

elv.setOnGroupClickListener(new OnGroupClickListener(){

@Override

public boolean onGroupClick(ExpandableListView parent, View v,

int groupPosition, long id) {

List<ClassListItem> childData = new ArrayList<ClassListItem>();

String gradeid=(String) mGradeData.get(groupPosition).get("id");

getChildData(gradeid,childData); //获取子菜单数据

groupData.get(groupPosition).addchilddata(childData); //加载子菜单数据

if (groupData.get(groupPosition).checked){

for (int j=0;j<groupData.get(groupPosition).children.size();j++)

groupData.get(groupPosition).children.get(j).checked=true;

}

viewAdapter.notifyDataSetChanged();

return false;

}

});

3、加载获取子菜单数据

private void getChildData(String gradeid,List<ClassListItem> childData){

mClassData=getGradeClassData(gradeid);

for (int j = 0; j < mClassData.size(); j++) {



String classid= (String) mClassData.get(j).get("id");

String classname=(String) mClassData.get(j).get("name");

ClassListItem item = new ClassListItem(classname,classid, false);

childData.add(item);

}



}

4、定义主菜单类

private class GradeGroup {



public String id,name;



private boolean checked;



public List<ClassListItem> children;





public GradeGroup(String gradename,String _gradeid,boolean checked,List<ClassListItem> children){



this.name=gradename;



setChecked(checked);



// this.children=children;

this.id=_gradeid;

addchilddata(children);



}



public boolean getChecked(){



return checked;



}



public void addchilddata(List<ClassListItem> children){



this.children=children;



}





public void setChecked(boolean b){



checked=b;



if(children!=null&&children.size()>0){//若children不为空,循环设置children的checked



for(ClassListItem each : children){



each.checked=checked;



}



}



}



}

5、定义子菜单类

private class ClassListItem {



public String id,name;



public boolean checked;



public ClassListItem(String _name,String _classid,boolean _checked){



name=_name;



id=_classid;



checked=_checked;



}



}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: