android中二级列表的显示与ListView、RecyelerView等步骤类似:

(1)xml布局

<ExpandableListViewandroid:id="@+id/expandablelistview"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"/>

(2)代码:

privateExpandableListViewexpandablelistview;//可扩展的二级列表//创建对象expandablelistview=(ExpandableListView)findViewById(R.id.expandablelistview);//实现二级列表的Group点击效果expandablelistview.setOnGroupClickListener(newOnGroupClickListener(){@OverridepublicbooleanonGroupClick(ExpandableListViewparent,Viewv,intgroupPosition,longid){if(!parent.isGroupExpanded(groupPosition)){departmentId=(String)tree.get(groupArray.get(groupPosition));getemployee(groupPosition);//获取部门下的员工信息if(pos!=groupPosition){parent.collapseGroup(pos);}pos=groupPosition;}else{parent.collapseGroup(groupPosition);}returntrue;}});

(3)适配器:

publicclassExpandableAdapterextendsBaseExpandableListAdapter{publicExpandableAdapter(){hand=newHandler(){@OverridepublicvoidhandleMessage(Messagemsg){notifyDataSetChanged();super.handleMessage(msg);}};}publicObjectgetChild(intgroupPosition,intchildPosition){if(childArray.size()==0){returnnull;}returnchildArray.get(groupPosition).get(childPosition);}publiclonggetChildId(intgroupPosition,intchildPosition){returnchildPosition;}publicintgetChildrenCount(intgroupPosition){//if(childArray.size()==0){//return0;//}//if(childArray.size()==1){//return1;//}returnchildArray.size();}publicViewgetChildView(intgroupPosition,intchildPosition,booleanisLastChild,ViewconvertView,ViewGroupparent){if(childArray.size()==0){returngetGenericView("无员工信息");}if(childArray.size()==1){returngetGenericViewchild(childArray.get(0).get(0));}Stringstring=childArray.get(groupPosition).get(childPosition);returngetGenericViewchild(string);}//groupmethodstubpublicObjectgetGroup(intgroupPosition){returngroupArray.get(groupPosition);}publicintgetGroupCount(){returngroupArray.size();}publiclonggetGroupId(intgroupPosition){returngroupPosition;}publicViewgetGroupView(intgroupPosition,booleanisExpanded,ViewconvertView,ViewGroupparent){Stringstring=groupArray.get(groupPosition);returngetGenericView(string);}//ViewstubtocreateGroup/Children'sViewpublicTextViewgetGenericView(Stringstring){//LayoutparametersfortheExpandableListViewAbsListView.LayoutParamslayoutParams=newAbsListView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT);TextViewtext=newTextView(Manager_Employee_List.this);text.setLayoutParams(layoutParams);//Centerthetextverticallytext.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);//Setthetextstartingpositiontext.setPadding(100,0,0,0);text.setTextSize(25);text.setBackgroundResource(R.drawable.back_top);text.setText(string);returntext;}publicViewgetGenericViewchild(finalStringstring){Viewv=View.inflate(Manager_Employee_List.this,R.layout.activity_baseadapter_list,null);TextViewtext=(TextView)v.findViewById(R.id.tv_baseadapter_list);ImageButtonalter=(ImageButton)v.findViewById(R.id.ib_baseadapter_alter);//修改alter.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Toast.makeText(getApplicationContext(),"修改",0).show();Intentintent_Alter=newIntent(Manager_Employee_List.this,Manager_Add.class);intent_Alter.putExtra("companyId",companyId);PeopleNameAlterpeopleNameAlter=(PeopleNameAlter)treeMap.get(string);intent_Alter.putExtra("biaoshi",true);intent_Alter.putExtra("banc",peopleNameAlter.banc);intent_Alter.putExtra("dapart",peopleNameAlter.dapart);intent_Alter.putExtra("id",peopleNameAlter.id);intent_Alter.putExtra("loginname",peopleNameAlter.loginname);intent_Alter.putExtra("phone",peopleNameAlter.phone);intent_Alter.putExtra("pwd",peopleNameAlter.pwd);intent_Alter.putExtra("name",string);startActivity(intent_Alter);}});ImageButtondelete=(ImageButton)v.findViewById(R.id.ib_baseadapter_delete);//删除delete.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Toast.makeText(getApplicationContext(),"删除",0).show();PeopleNameAlterpeopleNameAlterDelete=(PeopleNameAlter)treeMap.get(string);deletePeople(peopleNameAlterDelete.id);namelingshi=string;}});text.setText(string);returnv;}publicbooleanhasStableIds(){returnfalse;}publicbooleanisChildSelectable(intgroupPosition,intchildPosition){returntrue;}}

(4)让ExpandableListView使用适配器

expandablelistview.setAdapter(newExpandableAdapter());


具体的显示效果,可以再适配器中进行设置。