android原生可扩展ExpandableListView就是可以伸缩的listView,一条标题下面有多条内容。

这个list的adapter对的数据要求与普通ListView的数据要求也有一些差别,这个list需要有两个数据源

一半需要 List<String> groups 作为group 和一个 Map<String , List<String>> children 作为children,他们最好意义对应

ExpandableListView使用起来和普通的listView方式差不多,不过ExpandableListView的适配器需要继承的父类是

BaseExpandableListAdapter,实现其中的各个方法。

下面说一说需要重写的方法的意

1.public Object getChild(int groupPosition, int childPosition) 返回当前group下的当前子内容对象。

2. long getChildId(int groupPosition, int childPosition)  返回当前group下的当前子内容的id。

3.public View getChildView(final int groupPosition,final int childPosition, boolean isLastChild, View convertView,

ViewGroup parent) 这个方法才是最重要的,类似于BaseAdapter的getView方法。在这里主要完成对内容条目的编码。

4.public int getChildrenCount(int groupPosition) 返回当前group下面有多少条内容。

5.public Object getGroup(int groupPosition) 返回当前group对象

6.public int getGroupCount() 返回一共有多少个group

7.public long getGroupId(int groupPosition) 返回当前group的ID

8.public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) 这个方法主要对group进行编码,需要什么样的group就在这里编码即可。 isExpanded 返回当前group是打开还是关闭的状态

9.public boolean isChildSelectable(int groupPosition, int childPosition) 返回true 每一条的字内容可点击,否则相反。

10.public boolean hasStableIds() 这个还不止有什么用途,一半返回true。

自定义group的指示器

listView.setGroupIndicator(getResources().getDrawable(R.drawable.ic_launcher));

也可以让其隐藏在getGroupView中编码

源码下载Download

这个demo是继承自定义的ExpandSlideListView还用于下面一遍可以滑动内容的文章,两个文章用的是同一个源码。本人水平有限,见谅。

android原生ExpandableListView的更多相关文章

  1. 拓展 Android 原生 CountDownTimer 倒计时

    拓展 Android 原生 CountDownTimer 倒计时 [TOC] CountDownTimer 在系统的CountDownTimer上进行的修改,主要是拓展了功能,当然也保留了系统默认的模 ...

  2. Android原生json和fastjson的简单使用

    android原生操作json数据 主要是两个类 JSONObject 操作对象     JONSArray操作json数组 对象转json //创建学生对象 Student student=new ...

  3. Android原生游戏开发:使用JustWeEngine开发微信打飞机

    使用JustWeEngine开发微信打飞机: 作者博客: 博客园 引擎地址:JustWeEngine 示例代码:EngineDemo JustWeEngine? JustWeEngine是托管在Git ...

  4. [Android Pro] android 4.4 Android原生权限管理:AppOps

    reference : http://m.blog.csdn.net/blog/langzxz/45308199 reference : http://blog.csdn.net/hyhyl1990/ ...

  5. 22.Android之ExpandableListView树形列表学习

    Android经常用到树形菜单,一般ExpandableListView可以满足这个需要,今天学习下. XML代码: <?xml version="1.0" encoding ...

  6. Android之ExpandableListView

    ExpandableListView可以用来表现多层级的listView,本文主要是ExpandableListView的一个简单实现 布局文件 <LinearLayout xmlns:andr ...

  7. 【android原生应用】之闹钟应用搭起篇

    由于工作原因接触android开发一段时间了,对于开发有了一些了解,于是萌生了搭起android原生应用进行分析和学习的想法.先从闹钟应用开始吧. 1.首先要下载原生应用,原生应用在原生系统里面(当然 ...

  8. Android 之 ExpandableListView 的使用

    喜欢显示好友QQ那样的列表,可以展开,可以收起,在android中,以往用的比较多的是listview,虽然可以实现列表的展示,但在某些情况下,我们还是希望用到可以分组并实现收缩的列表,那就要用到an ...

  9. Android中ExpandableListView控件基本使用

    本文採用一个Demo来展示Android中ExpandableListView控件的使用,如怎样在组/子ListView中绑定数据源.直接上代码例如以下: 程序结构图: layout文件夹下的 mai ...

随机推荐

  1. js 截取字符串,取指定位置的字符(完善中)

    1.获取字符串的最后一位或第一位 str.charAt(str.length - 1);    str.charAt(0);

  2. javascript 之 prototype继承机制

    理解Javascript语言的继承机制 javascript没有"子类"和"父类"的概念,也没有"类"(class)和"实例&qu ...

  3. Unity脚本时间执行顺序

    1.Awake Awake用于脚本唤醒.此方法为系统执行的第一个方法,用于脚本的初始化,在脚本的生命周期中只执行一次. 2.Start Start方法在Awake之后执行,在脚本生命周期中只执行一次. ...

  4. 关于firstChild,firstElementChild和children

    <div> <p>123</p> </div> 在上面这段代码中,如果使用以下js代码 var oDiv=document.getElementByTa ...

  5. 区分IE版本的三个方法

    我们通常使用IE条件判断语言来处理IE的CSS问题,但其实还是有其他的一些方法来处理IE的CSS bug的. 一.IE条件判断语句 IE条件判断语句也许是用的最多的区分IE版本(IE6, IE7, I ...

  6. 教你9个提升 Wordpress 网站安全性的方法

    大约一个月前,这个部落格被黑客入侵(编按:Amit Agarwal 的网站).而其他托管于相同主机商的网站像是 ctrlq.org 和2hundredzeros.com 也深受其害,黑客成功从网路上拿 ...

  7. discuz被别人评论一段代码,然后页面就变样了

                ۣۣۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖۖ ...

  8. sql练习记录

    三表关联如果字段为0则表示是散客卡 select a.shop_id as id,b.shop_name,a.balance,a.point,(IF(a.card_type_id<>0,c ...

  9. UIKit框架

    在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...

  10. 【基本技能篇】>>第2篇《如何把事情做到最好——心得》

    如何把事情做到最好——全美第一本系统阐述学习与成功之道的经典著作. ——2016年2月12日 四个阅读层次:①基础阅读,具有基本阅读的能力,包括认识字,懂得词,知会句子的基本意思等.②检视阅读(也是判 ...