Android二级列表
16lz
2021-01-23
android中二级列表的显示与ListView、RecyelerView等步骤类似:
(1)xml布局
(2)代码:
private ExpandableListView expandablelistview;// 可扩展的二级列表//创建对象expandablelistview = (ExpandableListView) findViewById(R.id.expandablelistview);//实现二级列表的Group点击效果expandablelistview.setOnGroupClickListener(new OnGroupClickListener() {@Overridepublic 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() {@Overridepublic 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 stubpublic 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 Viewpublic TextView getGenericView(String string) {// Layout parameters for the ExpandableListViewAbsListView.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 verticallytext.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);// Set the text starting positiontext.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() {@Overridepublic 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() {@Overridepublic 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());
具体的显示效果,可以再适配器中进行设置。
转载于:https://blog.51cto.com/liuxudong1001/1753742
更多相关文章
- Android避免应用出现在最近使用APP列表里
- Android 7.0 如何将应用添加设置列表
- android几种适配器的使用
- ANDROID上获取MSN邮件列表
- Androidの各国语言列表
- android 源码编译 问题 列表
- Android源代码在线浏览网站列表
- Android实现二级列表购物车功能
- android适配器的简单使用