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

更多相关文章

  1. Android避免应用出现在最近使用APP列表里
  2. Android 7.0 如何将应用添加设置列表
  3. android几种适配器的使用
  4. ANDROID上获取MSN邮件列表
  5. Androidの各国语言列表
  6. android 源码编译 问题 列表
  7. Android源代码在线浏览网站列表
  8. Android实现二级列表购物车功能
  9. android适配器的简单使用

随机推荐

  1. Android(安卓)TextView属性详解
  2. Android中以JAR形式封装控件 或者类库
  3. 2019最新Android常用开源库总结(附带githu
  4. android 是通过 ksoap 连接 java xfire w
  5. 我所理解的Android模块化(二)——模块通信
  6. Android(安卓)UI开发第三十五篇——AppCo
  7. Kotlin让Android更简单~
  8. 通过eclipse查看Android源代码(Java)
  9. Android(安卓)Drawable之GradientDrawabl
  10. Android开发者e周报 第3期