您好,登錄后才能下訂單哦!
android中二級(jí)列表的顯示與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;// 可擴(kuò)展的二級(jí)列表 //創(chuàng)建對(duì)象 expandablelistview = (ExpandableListView) findViewById(R.id.expandablelistview); //實(shí)現(xiàn)二級(jí)列表的Group點(diǎn)擊效果 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("無(wú)員工信息"); } 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());
具體的顯示效果,可以再適配器中進(jìn)行設(shè)置。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。