二级列表SimpleExpandableListAdapter ,ExpandableListAdapter
来源:互联网 发布:剪切视频在线软件 编辑:程序博客网 时间:2024/05/17 04:58
第一种
package com.bwei.expandablelistview;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.ExpandableListView;import android.widget.SimpleExpandableListAdapter;public class MainActivity extends Activity {// 一级数据源private String[] names = new String[] { "百度", "腾讯", "王过" };// 二级数据源private String[][] items = new String[][] { { "百度地图", "百度外卖", "百度云" },{ "QQ", "微信", "王者荣耀" }, { "AK47", "直播","茶杯" } };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 找控件ExpandableListView elv = (ExpandableListView) findViewById(R.id.elv);// 数据 定义子列表项List数据集合 List<List<Map<String, String>>> data = new ArrayList<List<Map<String, String>>>();// 创建数据 一级 //定义父列表项List数据集合 List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();for (int i = 0; i < names.length; i++) { //提供父列表的数据 Map<String, String> map = new HashMap<String, String>();map.put("name", names[i]);groupData.add(map);// 二级数据源 提供当前父列的子列数据 List<Map<String, String>> childData2 = new ArrayList<Map<String, String>>();for (int j = 0; j < items.length; j++) {Map<String, String> map2 = new HashMap<String, String>();map2.put("item", items[i][j]);childData2.add(map2);}data.add(childData2);} /** * 第一个参数 应用程序接口 this * 第二个父列List<?extends Map<String,Object>>集合 为父列提供数据 * 第三个参数 父列显示的组件资源文件 * 第四个参数 键值列表 父列Map字典的key * 第五个要显示的父列组件id * 第六个 子列的显示资源文件 * 第七个参数 键值列表的子列Map字典的key * 第八个要显示子列的组件id */ // 创建适配器SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(this, groupData, R.layout.group_layout,new String[] { "name" }, new int[] { R.id.tv_name }, data,R.layout.child_layout, new String[] { "item" },new int[] { R.id.tv_child });// 设置适配器elv.setAdapter(adapter);}}
第二种方式
package com.bwei.expandablelistview;import android.os.Bundle;import android.app.Activity;import android.database.DataSetObserver;import android.view.Menu;import android.view.View;import android.view.ViewGroup;import android.widget.ExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.ExpandableListView.OnChildClickListener;import android.widget.ExpandableListView.OnGroupExpandListener;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {// 一级数据源private String[] names = new String[] { "百度", "腾讯", "王过" };// 二级数据源private String[][] items = new String[][] { { "百度地图", "百度外卖", "百度云" },{ "QQ", "微信", "王者荣耀" }, { "AK47", "直播" } };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 找控件ExpandableListView elv = (ExpandableListView) findViewById(R.id.elv);// 创建适配器MyExpandableListAdapter adapter = new MyExpandableListAdapter();// 设置适配器elv.setAdapter(adapter);// 点击一级条目elv.setOnGroupExpandListener(new OnGroupExpandListener() {@Overridepublic void onGroupExpand(int groupPosition) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "跳转吧" + groupPosition, 0).show();}});// 设置一级的箭头// elv.setGroupIndicator(null);/* * elv.setOnChildClickListener(new OnChildClickListener() { * * @Override public boolean onChildClick(ExpandableListView parent, View * v, int groupPosition, int childPosition, long id) { // TODO * Auto-generated method stub Toast.makeText(MainActivity.this, * "跳转:"+childPosition, 0).show(); return false; } }); */}private class MyExpandableListAdapter implements ExpandableListAdapter {@Overridepublic void registerDataSetObserver(DataSetObserver observer) {// TODO Auto-generated method stub}@Overridepublic void unregisterDataSetObserver(DataSetObserver observer) {// TODO Auto-generated method stub}// 一级数据个数@Overridepublic int getGroupCount() {// TODO Auto-generated method stubreturn names.length;}// 二级数据个数@Overridepublic int getChildrenCount(int groupPosition) {// TODO Auto-generated method stubreturn items[groupPosition].length;}@Overridepublic Object getGroup(int groupPosition) {// TODO Auto-generated method stubreturn names[groupPosition];}@Overridepublic Object getChild(int groupPosition, int childPosition) {// TODO Auto-generated method stubreturn items[groupPosition][childPosition];}@Overridepublic long getGroupId(int groupPosition) {// TODO Auto-generated method stubreturn 0;}@Overridepublic long getChildId(int groupPosition, int childPosition) {// TODO Auto-generated method stubreturn 0;}@Overridepublic boolean hasStableIds() {// TODO Auto-generated method stubreturn false;}// 加载一级布局@Overridepublic View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {// TODO Auto-generated method stubView view =null;if (groupPosition == 0) {view = View.inflate(MainActivity.this, R.layout.group_layout,null);} else {view = View.inflate(MainActivity.this, R.layout.group,null);}TextView tv_name = (TextView) view.findViewById(R.id.tv_name);tv_name.setText(names[groupPosition]);return view;}// 加载二级布局@Overridepublic View getChildView(int groupPosition, int childPosition,boolean isLastChild, View convertView, ViewGroup parent) {// TODO Auto-generated method stubView view = View.inflate(MainActivity.this, R.layout.child_layout,null);TextView tv_child = (TextView) view.findViewById(R.id.tv_child);tv_child.setText(items[groupPosition][childPosition]);return view;}@Overridepublic boolean isChildSelectable(int groupPosition, int childPosition) {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean areAllItemsEnabled() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean isEmpty() {// TODO Auto-generated method stubreturn false;}@Overridepublic void onGroupExpanded(int groupPosition) {// TODO Auto-generated method stub}@Overridepublic void onGroupCollapsed(int groupPosition) {// TODO Auto-generated method stub}@Overridepublic long getCombinedChildId(long groupId, long childId) {// TODO Auto-generated method stubreturn 0;}@Overridepublic long getCombinedGroupId(long groupId) {// TODO Auto-generated method stubreturn 0;}}}
阅读全文
0 0
- 二级列表SimpleExpandableListAdapter ,ExpandableListAdapter
- ExpandableListAdapter二级菜单适配器
- 安卓ExpandableListAdapter的二级列表监听问题--自动收缩问题
- ExpandableListView如何进行二级扩展(SimpleExpandableListAdapter)
- SimpleExpandableListAdapter
- SimpleExpandableListAdapter
- SimpleExpandableListAdapter
- ExpandableListAdapter
- ExpandableListAdapter
- ExpandableListAdapter
- ExpandableListAdapter
- 使用ExpandableListView和ExpandableListAdapter实现分组列表
- 二级列表
- 二级列表
- 二级列表
- 二级列表
- 二级列表
- 二级列表
- Android 动画简述
- 大数据试验——配置环境1
- BZOJ 1568 [JSOI2008]Blue Mary开公司
- 最长递增子序列
- 长短信发送
- 二级列表SimpleExpandableListAdapter ,ExpandableListAdapter
- go语言开发必备
- PHP对接微信公众平台消息接口开发流程详解及实例(一)
- JAVA枚举(高级)
- android service的使用与理解
- 笨办法学 Python · 续 练习 22:后缀数组
- 暑假集训日记--8.9--搜索、图论专题总结
- The fish and bird-另类关系
- 图的基本存储的基本方式二