android中二级列表的显示与ListView、RecyelerView等步骤类似:
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的城步网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!(1)xml布局
(2)代码:
private ExpandableListView expandablelistview;// 可扩展的二级列表 //创建对象 expandablelistview = (ExpandableListView) findViewById(R.id.expandablelistview); //实现二级列表的Group点击效果 expandablelistview.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { 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); } return true; } });
(3)适配器:
public class ExpandableAdapter extends BaseExpandableListAdapter { public ExpandableAdapter() { hand = new Handler() { @Override public void handleMessage(Message msg) { notifyDataSetChanged(); super.handleMessage(msg); } }; } public Object getChild(int groupPosition, int childPosition) { if (childArray.size() == 0) { return null; } return childArray.get(groupPosition).get(childPosition); } public long getChildId(int groupPosition, int childPosition) { return childPosition; } public int getChildrenCount(int groupPosition) { // if (childArray.size() == 0) { // return 0; // } // if (childArray.size() == 1) { // return 1; // } return childArray.size(); } public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (childArray.size() == 0) { return getGenericView("无员工信息"); } if (childArray.size() == 1) { return getGenericViewchild(childArray.get(0).get(0)); } String string = childArray.get(groupPosition).get(childPosition); return getGenericViewchild(string); } // group method stub public Object getGroup(int groupPosition) { return groupArray.get(groupPosition); } public int getGroupCount() { return groupArray.size(); } public long getGroupId(int groupPosition) { return groupPosition; } public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { String string = groupArray.get(groupPosition); return getGenericView(string); } // View stub to create Group/Children 's View public TextView getGenericView(String string) { // Layout parameters for the ExpandableListView AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT); TextView text = new TextView(Manager_Employee_List.this); text.setLayoutParams(layoutParams); // Center the text vertically text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); // Set the text starting position text.setPadding(100, 0, 0, 0); text.setTextSize(25); text.setBackgroundResource(R.drawable.back_top); text.setText(string); return text; } public View getGenericViewchild(final String string) { View v = View.inflate(Manager_Employee_List.this, R.layout.activity_baseadapter_list, null); TextView text = (TextView) v.findViewById(R.id.tv_baseadapter_list); ImageButton alter = (ImageButton) v .findViewById(R.id.ib_baseadapter_alter); // 修改 alter.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "修改", 0).show(); Intent intent_Alter = new Intent( Manager_Employee_List.this, Manager_Add.class); intent_Alter.putExtra("companyId", companyId); PeopleNameAlter peopleNameAlter = (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); } }); ImageButton delete = (ImageButton) v .findViewById(R.id.ib_baseadapter_delete); // 删除 delete.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "删除", 0).show(); PeopleNameAlter peopleNameAlterDelete = (PeopleNameAlter) treeMap .get(string); deletePeople(peopleNameAlterDelete.id); namelingshi = string; } }); text.setText(string); return v; } public boolean hasStableIds() { return false; } public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } }
(4)让ExpandableListView使用适配器
expandablelistview.setAdapter(new ExpandableAdapter());
具体的显示效果,可以再适配器中进行设置。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款