CursorTreeAdapter 详解

CursorTreeAdapter 通过该适配类可以用一连续的游标 (Coursor)对象访问数据库,并将查询出来的数据展示到可伸缩的列表视图 (ExpandableListView)部件上。顶层游标 (Cursor)对象 (在构造器中指定 )显示全部组,后面的游标 (Cursor)对象从getChildrenCursor(Cursor) 获取并展示子元素组。其中游标携带的结果集中必须有个名为“ _id”的列,否则这个类不起任何作用

 

 

结构

public abstract class CusrorTreeAdapter

         extends BaseExpandableListAdpater implements Filterable

 

java.lang.Object

android.widget.BaseExpandableListAdapter

         android.widget.CursorTreeAdapter

 

直接子类

         ResourceCursorTreeAdapter

间接子类

SimpleCursorTreeAdapter

 

 

构造函数

 

 

 

public CursorTreeAdapter (Cursor cursor, Context context)

           构造函数。每当数据库的数据发生改变时,适配器将调用 requery()重新查询以显示最新的数据。

                  参数

   cursor       为组 (groups)提供数据的游标 (Coursor)

                  context    应用程序上下文。

 

public CursorTreeAdapter (Cursor cursor, Context context, boolean autoRequery)

           构造函数。

                   参数

    cursor       为组 (groups)提供数据的游标 (Coursor)

                   context    应用程序上下文。

                         autoRequery  设置为 true时,每当数据库的数据发生改变时,适配器将调用 requery()重新查询以显示最新的数据。

 

抽象方法

 

protected abstract void bindChildView (View view, Context context, Cursor cursor,           boolean isLastChild)

    用游标 (Coursor)的方式将子元素数据绑定在一个已存在的视图 (View)对象上。

                  参数

                            view              已存在的视图 (View)对象 , 也就是之前 new出来的。

                            context          应用程序上下文对象

                            cursor            获取数据的游标对象,它已经移动到正确的位置

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

 

    protected abstract void bindGroupView (View view, Context context, Cursor cursor,        boolean isExpanded)

    用游标 (Coursor)的方式将组数据绑定在一个已存在的视图 (View)对象上。

                  参数

                            view              已存在的组视图 (View)对象 , 也就是早先 new出来的。

                            context          应用程序上下文对象,它已经移动到正确的位置

                            cursor            获取数据的游标对象

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

 

    protected abstract Cursor getChildrenCursor (Cursor groupCursor)

    获取指定组中的子元素游标对象。子类必须实现这个方法,用于在指定组中返回子元素数据。

  如果你想用异步查询的方式避免 UI阻塞的情况发生,可能会返回 null或是在稍后调用 setChildrenCursor(int, Cursor)

  你有责任在 Activity生命周期中管理这个游标对象,有一个非常好的思路:使用 managedQuery(Uri, String[], String, String[], String) 来管理它们。 在某些情况下,适配器本身会使游标停止工作,但这个特例不会总是出现,所以我们要确保有效地管理好游标对象。

                   参数

                            groupCursor  组游标对象,决定返回哪个组中的子元素游标对象。

                   返回值

                            返回指定组中的子元素游标对象或者为 null

 

    protected abstract View newChildView (Context context, Cursor cursor, boolean     isLastChild, ViewGroup parent)

    创建一个新的子元素视图并持有指向数据的游标 cursor

                   参数

                            context          应用程序上下文对象

                            cursor            获取数据的游标对象,它已经移动到正确的位置

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

                            parent      新视图 (View)所依附于的父对象。

 

    protected abstract View newGroupView (Context context, Cursor cursor, boolean isExpanded, ViewGroup parent)

    创建一个新的组视图并持有组中指向数据的游标 cursor

                  参数

                            context          应用程序上下文对象

                            cursor            获取数据的游标对象,它已经移动到正确的位置

                            isExpanded   该组是否展开状态

                                parent       新视图 (View) 所依附于的父对象。

 

用法 这里主要是实现这几个抽象方法

 

 

 

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值