Android学习笔记-ExpandableListView的使用
来源:互联网 发布:战舰世界大和数据穿深 编辑:程序博客网 时间:2024/05/17 22:30
Android中listview只能将item逐行显示,不能实现树形效果,ExpandableListView是对listView的扩充,可以显示 类似QQ列表的效果,ExpandableListView只支持二级列表。ExpandableListView的使用与ListView类似。下面是我写的小例子
首先继承BaseExpandableListAdapter
public class MyAdapter extends BaseExpandableListAdapter { private List<List<Map<String,String>>> group; Context context; public MyAdapter(List<List<Map<String,String>>> data,Context context){ this.group=data; this.context=context; }//返回组的数量 @Override public int getGroupCount() { return group.size(); }//返回组内的children数量 @Override public int getChildrenCount(int groupPosition) { return group.get(groupPosition).size(); } @Override public Object getGroup(int groupPosition) { return group.get(groupPosition); } @Override public Object getChild(int groupPosition, int childPosition) { return group.get(groupPosition).get(childPosition); } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public boolean hasStableIds() { return false; }//对一级目录进行填充 @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { ViewHolder viewHolder; if(convertView==null){ convertView=LayoutInflater.from(context).inflate(R.layout.group_view,null); viewHolder=new ViewHolder(); viewHolder.imageView=(ImageView)convertView.findViewById(R.id.g_image); viewHolder.textView=(TextView)convertView.findViewById(R.id.g_text); convertView.setTag(viewHolder); } else{ viewHolder=(ViewHolder)convertView.getTag(); } viewHolder.imageView.setImageResource(R.mipmap.ic_launcher); viewHolder.textView.setText("group"); return convertView; }//填充子目录 @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { ViewHolder viewHolder; if(convertView==null){ convertView=LayoutInflater.from(context).inflate(R.layout.group_view,null); viewHolder=new ViewHolder(); viewHolder.imageView=(ImageView)convertView.findViewById(R.id.g_image); viewHolder.textView=(TextView)convertView.findViewById(R.id.g_text); convertView.setTag(viewHolder); } else{ viewHolder=(ViewHolder)convertView.getTag(); } viewHolder.imageView.setImageResource(R.mipmap.ic_launcher); viewHolder.textView.setText(group.get(groupPosition).get(childPosition).get("name")); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; } //ViewHolder保存每个item内的view static class ViewHolder{ ImageView imageView; TextView textView; }}
然后写两个布局文件,布局文件可参考ListView的写法。
0 0
- Android学习笔记-ExpandableListView的使用
- android学习ExpandableListView使用
- Android学习笔记之ExpandableListView
- Android ExpandableListView的使用
- Android ExpandableListView的使用
- Android ExpandableListView的使用
- Android ExpandableListView的使用
- Android ExpandableListView的使用
- Android ExpandableListView的使用
- Android ExpandableListView的使用
- android-ExpandableListView的使用
- Android ExpandableListView 使用要点笔记
- Android学习笔记(二五): 多信息显示-ExpandableListView的使用
- Android学习笔记(二五): 多信息显示-ExpandableListView的使用
- Android学习笔记(34)--- 可下拉ListView(ExpandableListView)的使用
- android学习笔记——ExpandableListView学习
- android学习:ExpandableListView的运用
- android中expandablelistview的学习
- 常用Linux操作命令总结
- Android 打造风格统一的导航之v7 ToolBar
- 干程序员不要输在起跑线上
- 读取手机联系人
- 用哈弗曼树编码字符串 求出编码后字符串二进制位长度
- Android学习笔记-ExpandableListView的使用
- Lucene 简介
- linux python升级过程
- MVC 用户登录状态检测
- Java抽象和接口的学习和笔记——黑马训练营
- java统计字符串中中英文个数
- 10.22记
- android原生(Google)下拉刷新SwipeRefreshLayout
- 最小m段和