2.10 ExpandableListView(可折叠列表)的基本使用
2016-10-13 17:57
288 查看
一、布局文件
1、新建布局文件:item_exlist_group.xml,添加如下代码:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:padding="5dp" > <TextView android:id="@+id/tv_group_name" android:layout_width="match_parent" android:layout_height="56dp" android:gravity="center_vertical" android:paddingLeft="30dp" android:text="AP" android:textStyle="bold" android:textSize="20sp" /> </LinearLayout>
2、新建布局文件:item_exlist_item.xml,添加如下代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:padding="5dp" android:background="#6BBA79" > <ImageView android:id="@+id/img_icon" android:layout_width="48dp" android:layout_height="48dp" android:src="@drawable/avator_smaller" android:focusable="false" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:layout_marginTop="15dp" android:focusable="false" android:text="提莫" android:textSize="18sp" /> </LinearLayout>
3、activity_main.xml 添加如下代码:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <ExpandableListView android:id="@+id/exlist_lol" android:layout_width="match_parent" android:layout_height="match_parent" android:childDivider="#E02D2F" /> </RelativeLayout>
Java代码
1、新建java类:Group,添加如下代码package com.example.yuancan.test1013; /** * Created by yuancan on 16/10/13. */ public class Group { private String gName; public Group() { } public Group(String gName) { this.gName = gName; } public void setgName(){ this.gName = gName; } public String getgName(){ return gName; } }
2、新建java类:Item,添加如下代码:
package com.example.yuancan.test1013; import android.content.ClipData; /** * Created by yuancan on 16/10/13. */ public class Item { private int iId; private String iName; public Item (){ } public Item(int iId,String iName){ this.iId = iId; this.iName = iName; } public void setiId(int iId) { this.iId = iId; } public void setiName(String iName){ this.iName = iName; } public int getiId() { return iId; } public String getiName() { return iName; } }
3、新建java类:MyBaseExpandableListAdapter,添加如下代码:
package com.example.yuancan.test1013; import android.content.ClipData; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.ArrayList; /** * Created by yuancan on 16/10/13. */ public class MyBaseExpandableListAdapter extends BaseExpandableListAdapter{ private ArrayList<Group> gData; private ArrayList<ArrayList<Item>> iData; private Context mContext; public MyBaseExpandableListAdapter(ArrayList<Group> gData, ArrayList<ArrayList<Item>> iData, Context mContext){ this.gData = gData; this.iData = iData; this.mContext = mContext; } @Override public int getGroupCount() { return gData.size(); } @Override public int getChildrenCount(int groupPosition) { return iData.get(groupPosition).size(); } @Override public Object getGroup(int groupPosition) { return gData.get(groupPosition); } @Override public Object getChild(int groupPosition, int childPosition) { return iData.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) { ViewHolderGroup groupHolder; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.item_exlist_group,parent,false); groupHolder = new ViewHolderGroup(); groupHolder.tv_group_name = (TextView)convertView.findViewById(R.id.tv_group_name); convertView.setTag(groupHolder); }else { groupHolder = (ViewHolderGroup)convertView.getTag(); } groupHolder.tv_group_name.setText(gData.get(groupPosition).getgName()); return convertView; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { ViewHolderItem itemHolder; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.item_exlist_item,parent,false); itemHolder = new ViewHolderItem(); itemHolder.img_icon = (ImageView)convertView.findViewById(R.id.img_icon); itemHolder.tv_name = (TextView)convertView.findViewById(R.id.tv_name); convertView.setTag(itemHolder); }else { itemHolder = (ViewHolderItem)convertView.getTag(); } itemHolder.img_icon.setImageResource(iData.get(groupPosition).get(childPosition).getiId()); itemHolder.tv_name.setText(iData.get(groupPosition).get(childPosition).getiName()); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } private static class ViewHolderGroup{ private TextView tv_group_name; } private static class ViewHolderItem{ private ImageView img_icon; private TextView tv_name; } }
相关文章推荐
- Android基础入门教程——2.4.12 ExpandableListView(可折叠列表)的基本使用
- 追溯-----ExpandableListView,二级列表的基本使用
- ExpandableListView的基本使用
- 05.实例篇:仿QQ好友列表——ExpandableListView可扩展列表的使用(上篇)
- android开发之ExpandableListView的使用,实现类似QQ好友列表
- ExpandableListView的使用,实现类似QQ好友列表
- 一看就会Android之分组列表组件ExpandableListView的使用
- Android中可展开的列表组件(ExpandableListView)的使用
- Android在ExpandableListView控制的基本使用
- android开发之ExpandableListView的使用,实现类似QQ好友列表
- ExpandableListView以及BaseExpandableListAdapter的基本使用
- 使用BaseExpandableListAdapter实现可折叠的列表
- Android开发系列(九) ExpandableListView进阶使用——QQ联系人列表(升级版)
- Android ExpandableListView展开列表控件使用实例
- android开发之ExpandableListView的使用,实现类似QQ好友列表
- [Android] ListView (普通列表控件) 的基本使用方法
- Android开发系列(十三) QQ联系人列表完整版——ExpandableListView高阶使用方法
- [Android] ListView (普通列表控件) 的基本使用方法
- Android多级列表ExpandableListView使用实例
- 动画ExpandableListView — SlideExpandableListView的基本使用和源码解析