android中二级列表的显示与ListView、RecyelerView等步骤类似:
(1)xml布局
<ExpandableListView
android:id="@+id/expandablelistview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp" />
(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());
具体的显示效果,可以再适配器中进行设置。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。