扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
android中二级列表的显示与ListView、RecyelerView等步骤类似:
目前创新互联已为上1000+的企业提供了网站建设、域名、虚拟空间、绵阳服务器托管、企业网站设计、沧县网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
(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());
具体的显示效果,可以再适配器中进行设置。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流