ExpandableListView方法详解

正文

  一、结构public interface ExpandableListAdapter

间接子类:BaseExpandableListAdapter,CursorTreeAdapter,ResourceCursorTreeAdapter, SimpleCursorTreeAdapter, SimpleExpandableListAdapte

  二、概述

    这个适配器在ExpandableListView和底层数据之间起到了一个衔接的作用。该接口的实现类提供了访问子元素(以组的形式将它们分类)的数据;同样,也提供了为子元素和组创建相应的视图。

  三、公共方法

    public abstract boolean areAllItemsEnabled ()

    ExpandableListAdapter里面的所有条目都可用吗?如果是yes,就意味着所有条目可以选择和点击了。返回值:返回True表示所有条目均可用。

    public abstract Cursor getChild (int groupPosition, int childPosition)

    获取指定组中的指定子元素数据。    返回值      返回指定子元素数据。

  public abstract long getChildId (int groupPosition, int childPosition)

  获取指定组中的指定子元素ID,这个ID在组里一定是唯一的。联合ID(getCombinedChildId(long, long))在所有条目(所有组和所有元素)中也是唯一的。

public abstract View getChildView (int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)  获取一个视图对象,显示指定组中的指定子元素数据。  参数:groupPosition  组位置(该组内部含有子元素)

childPosition   子元素位置(决定返回哪个视图)

isLastChild    子元素是否处于组中的最后一个

    convertView   重用已有的视图(View)对象。注意:在使用前你应该检查一下这个视图对象是否非空并且这个对象的类型是否合适。由此引伸出,如果该对象不能被转换并显示正确的数据,这个方法就会调用getChildView(int, int, boolean, View, ViewGroup)来创建一个视图(View)对象。

parent         返回的视图(View)对象始终依附于的视图组。

返回值:   指定位置上的子元素返回的视图对象

  public abstract int getChildrenCount (int groupPosition)

    获取指定组中的子元素个数

参数:  groupPosition 组位置(决定返回哪个组的子元素个数)

返回值 :指定组的子元素个数

  public abstract long getCombinedChildId (long groupId, long childId)

  从列表所有项(组或子项)中获得一个唯一的子ID号。可折叠列表要求每个元素(组或子项)在所有的子元素和组中有一个唯一的ID。本方法负责根据所给的子ID号和组ID号返回唯一的ID。此外,若hasStableIds()是true,那么必须要返回稳定的ID。

参数:groupId 包含该子元素的组ID

childId  子元素的ID

返回值:    列表所有项(组或子项)中唯一的(和可能稳定)的子元素ID号。(译者注:ID理论上是稳定的,不会发生冲突的情况。也就是说,这个列表会有组、子元素,它们的ID都是唯一的。)

  public abstract Cursor getGroup (int groupPosition)

获取指定组中的数据  参数 :  groupPosition 组位置

返回值 :返回组中的数据,也就是该组中的子元素数据

  public abstract int getGroupCount ()

    获取组的个数     返回值:  组的个数

    public abstract long getGroupId (int groupPosition)

  获取指定组的ID,这个组ID必须是唯一的。联合ID(参见getCombinedGroupId(long))在所有条目(所有组和所有元素)中也是唯一的。

参数: groupPosition 组位置

返回值:  返回组相关ID

  public abstract View getGroupView (int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)

    获取显示指定组的视图对象。这个方法仅返回关于组的视图对象,要想获取子元素的视图对象,就需要调用getChildView(int, int, boolean, View, ViewGroup)

      参数

  groupPosition 组位置(决定返回哪个视图)

  isExpanded    该组是展开状态还是伸缩状态

    convertView  重用已有的视图对象。注意:在使用前你应该检查一下这个视图对象是否非空并且这个对象的类型是否合适。由此引伸出,如果该对象不能被转换并显示正确的数据,这个方法就会调用getGroupView(int, boolean, View, ViewGroup)来创建一个视图(View)对象。

parent   返回的视图对象始终依附于的视图组。

  返回值: 返回指定组的视图对象

  public abstract boolean hasStableIds ()

  组和子元素是否持有稳定的ID,也就是底层数据的改变不会影响到它们。

返回值:返回一个Boolean类型的值,如果为TRUE,意味着相同的ID永远引用相同的对象public abstract boolean isChildSelectable (int groupPosition, int childPosition)

是否选中指定位置上的子元素。

参数:  groupPosition 组位置(该组内部含有这个子元素)

childPosition  子元素位置

返回值:  是否选中子元素

  public abstract boolean isEmpty ()

返回值:如果当前适配器不包含任何数据则返回True。经常用来决定一个空视图是否应该被显示。一个典型的实现将返回表达式getCount() == 0的结果,但是由于getCount()包含了头部和尾部,适配器可能需要不同的行为。

 public abstract void onGroupCollapsed (int groupPosition)

    当组收缩状态的时候此方法被调用。

参数: groupPosition 收缩状态的组索引

public abstract void onGroupExpanded(int groupPosition)

    当组展开状态的时候此方法被调用。

参数:groupPosition 展开状态的组位置

    public abstract void registerDataSetObserver (DataSetObserver observer)

    注册一个观察者(observer),当此适配器数据修改时即调用此观察者。

参数:observer 当数据修改时通知调用的对象

    public abstract void unregisterDataSetObserver (DataSetObserver observer)

  取消先前通过registerDataSetObserver(DataSetObserver)方式注册进该适配器中的观察者对象。参数:   observer  取消这个观察者的注册

四、补充 ExpandableListView.OnChildClickListener

结构

继承关系

public static interface ExpandableListView.OnChildClickListener

类概述

这是一个定义了当可折叠列表(expandable list)里的子元素(child)发生点击事件时调用的回调方法的接口。

公共方法

public abstract boolean onChildClick (ExpandableListView parent, View v, int groupPosition, int childPosition, long id)

  用当可折叠列表里的子元素(child)被点击的时候被调用的回调方法。

参数

  parent                    发生点击动作的ExpandableListView

v                    在expandable list/ListView中被点击的视图(View)

groupPosition                   包含被点击子元素的组(group)在ExpandableListView中的位置(索引)

childPosition                   被点击子元素(child)在组(group)中的位置

id                  被点击子元素(child)的行ID(索引)

    返回值

当点击事件被处理时返回true

ExpandableListView.OnGroupClickListener

结构

继承关系

public static interface ExpandableListView.OnGroupClickListener

类概述

这是一个定义了当可折叠列表(expandable list)里的组(group)发生点击事件时调用的回调方法的接口。

公共方法

public abstract boolean onGroupClick (ExpandableListView parent, View v, int groupPosition, long id)

  用当可折叠列表里的组(group)被点击的时候被调用的回调方法。

参数

      parent            发生点击事件的ExpandableListConnector

      v                    在expandable list/ListView中被点击的视图(View)

      groupPosition  被点击的组(group)在ExpandableListConnector中的位置(索引)

      id                   被点击的组(group)的行ID(索引)

    返回值

      当点击事件被处理的时候返回true

ExpandableListView.OnGroupCollapseListener

结构

继承关系

public interface ExpandableListView.OnGroupCollapseListener

类概述

当收缩某个组时,就会发出通知。

公共方法

public abstract void onGroupCollapse (int groupPosition)

每当收缩当前可伸缩列表中的某个组时,就调用该方法。

参数

groupPosition 组位置,也就是收缩的那个组的位置。

ExpandableListView.OnGroupExpandListener

结构

继承关系

public interface ExpandableListView.OnGroupExpandListener

类概述

当展开某个组时,就会发出通知。

公共方法

  public abstract void onGroupExpand (int groupPosition)

  每当展开当前可伸缩列表中的某个组时,就调用该方法。

    参数

groupPosition 组位置,也就是展开的那个组的位置。

http://blog.sina.com.cn/s/blog_b37dcd9701017s61.html

时间: 2024-10-09 23:22:32

ExpandableListView方法详解的相关文章

JavaScript原生对象属性和方法详解——Array对象 转载

length 设置或返回 数组中元素的数目. 注意:设置 length 属性可改变数组的大小.如果设置的值比其当前值小,数组将被截断,其尾部的元素将丢失.如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为 undefined.所以length不一定代表数组的元素个数. var arr = new Array(3) arr[0] = "John" arr[1] = "Andy" arr[2] = "Wendy" cons

Python数据类型及其方法详解

Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知识回顾. 一.整型和长整型 整型:数据是不包含小数部分的数值型数据,比如我们所说的1.2.3.4.122,其type为"int" 长整型:也是一种数字型数据,但是一般数字很大,其type为"long" 在python2中区分整型和长整型,在32位的机器上,取值范围是-2

【转】深入学习JavaScript: apply call方法 详解(转)

Js apply方法详解 原文:http://blog.csdn.net/myhahaxiao/article/details/6952321 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享..  如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.        apply和cal

hbase-0.94安装方法详解

先决条件: 1)java环境,需要安装java1.6以上版本 2)hadoop环境,由于HBase架构是基于其他文件存储系统的,因此在分布式模式下安装Hadoop是必须的,但是,如果运行在单价模式下,此条件可以省略.Hadoop-1.2.1的安装方法参考 hadoop-1.2.1安装方法详解 注意:安装时要注意Hadoop和HBase之间的版本关系,如果不匹配,很可能会影响HBase系统的稳定性. 本帖教程采用的hadoop是hadoop-1.2.1,hbase采用的是hbase-0.94 hb

oc中字典的实现方法详解

一:字典的基本概念 Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样. 通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的. 此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象 二:不可变字典-NSDictionary 1:初始化(以一个元素和多个元素

57. 数对之差的最大值:4种方法详解与总结[maximum difference of array]

[本文链接] http://www.cnblogs.com/hellogiser/p/maximum-difference-of-array.html [题目] 在数组中,数字减去它右边的数字得到一个数对之差.求所有数对之差的最大值.例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果. [分析] 看到这个题目,很多人的第一反应是找到这个数组的最大值和最小值,然后觉得最大值减去最小值就是最终的结果.这种思路忽略了题目中很重要的一点:数对之差

Java中的main()方法详解

在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等. 在看Java中的main()方法之前,先看一个最简单的Java应用程序HelloWorld,我将通过这个例子说明Java类中main()方法的奥秘,程序的代码如下: 1 /** 2 * Java中的main()方法

查看登陆系统用户的信息的三种方法详解

查看登陆系统用户的信息的三种方法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.who这个命令显示可以谁在登陆,但是这个有很多的花式玩法,这个命令超简单 语法:who [OPTION]... [ FILE | ARG1 ARG2 ] 1.参数:-u,显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串. 例如: 2.参数:-m,此参数的效果和指定"a

HTTP请求方法详解

HTTP请求方法详解 请求方法:指定了客户端想对指定的资源/服务器作何种操作 下面我们介绍HTTP/1.1中可用的请求方法: [GET:获取资源]     GET方法用来请求已被URI识别的资源.指定的资源经服务器端解析后返回响应内容(也就是说,如果请求的资源是文本,那就保持原样返回:如果是CGI[通用网关接口]那样的程序,则返回经过执行后的输出结果).     最常用于向服务器查询某些信息.必要时,可以将查询字符串参数追加到URL末尾,以便将信息发送给服务器.     使用GET请求时经常会发