EOE上的LISTVIEW分组
来源:互联网 发布:女款羽绒服淘宝网购物 编辑:程序博客网 时间:2024/05/21 00:20
前言:
方法2:利用GONE Visibility另一种方式的ListView sectioning 是使用的视图类的visibility属性。Android是能够动态测量和布局item view。在ListView的渲染系统,这两次传球被执行,只有当一个视图需要显示。换句话说,默认情况下, 一个ListView item view高度是可变的。巧妙设置分隔符的visiable。该算法是相当简单的,分隔符必须是View.VISIBLE时,该项目是第一个适配器或如果当前项目是在一个比前一个不同的组。如果没有这些条件进行了验证,我们将设置View.GONE的分隔。图形下面总结的伎俩:缺点
例子:
首先,我们需要创建一个自定义的布局,将每个 cell 的布局。我们只是想显示歌名以及字幕。根据当前的分隔状态的状态我们还需要添加的查看,将gone/visiable;下面的布局很简单:
实际的代码现在我们可以直接深入到Java代码。可能有人会问:为什么我们不为屏幕上创建自定义布局。事实上我们并不需要创建一个自定义布局的ListView;而且ListActivity所提供的正是我们正在寻找一个完全类似的默认布局。我们会让ListActivity布局设置我们的屏幕上做工作。主要java代码: 好了,希望大家happy Coding.!!! 效果图:
ListView通常显示比较大的数据量.例如,“通讯录”应用程序使用的 ListView 包含所有您的联系人。在此中Activity中每个联系人代表一个单一的item view。这种模式是很方便,因为在同一时间它显示在屏幕上的几次接触。换句话说,它为用户提供大型概述了他/她的联系人。但是,使用一个 ListView 部件是远远不够的......
如果让你开发了一个随机顺序显示所有联系人的通讯列表;解决的办法是理解和正常秩序中的所有联系人进行排序:按字母顺序排列。在另外的顺序,它通常是一个很好的做法,第几组数据。在“通讯录”应用程序实例,它归结为每个英文字母部分。
方法1:使用不同类型的视图ListView和更具体的adapter可以处理几种类型view。如果查询适配器接口,你会发现它包含两个具体方法:
- getViewTypeCount()返回类型view AdapterView管理。大部分时间此方法返回1,因为所有项目的ListView类似。在这种情况下,返回2,ListView 的将处理两种类型的view:经常项目视图和属于分隔查看.
- getItemViewType(INT)必须返回0(含)之间的一个整数getViewTypeCount() (inclusive )。给定的数字表示该类型的视图,在给定的位置。例如,我们可以确保返回的值是经常项目的小号0 和1的分隔符.
- 让你管理itmes的几种类型
- 很容易理解
- 几乎没有大量代码。
- 在一个特定的位置获得该item可能有困难。比方说,我们有[S1,C1,C2,S2,C3,C4,C5] SN是N次的分离器和CN N次接触。第五次接触实际存储在我们的数据数组的第7次。这意味着你不能访问,不知道多少部分数据包含在N的前面接触到您的阵列中的N次接触。
方法2:利用GONE Visibility另一种方式的ListView sectioning 是使用的视图类的visibility属性。Android是能够动态测量和布局item view。在ListView的渲染系统,这两次传球被执行,只有当一个视图需要显示。换句话说,默认情况下, 一个ListView item view高度是可变的。巧妙设置分隔符的visiable。该算法是相当简单的,分隔符必须是View.VISIBLE时,该项目是第一个适配器或如果当前项目是在一个比前一个不同的组。如果没有这些条件进行了验证,我们将设置View.GONE的分隔。图形下面总结的伎俩:缺点
- 使用更多的内存。
- 很容易将Sectioning 进行的“即时”.
- 简单分隔点击和执行的操作类似“下一步”。
- GetItem(int) 始终返回在您的数据基础结构中的第n个位置的item。此方法过程中,是基于cursor的适配器。这是根据查询ContentProvider时发生的。
例子:
- NotifyingAsyncQueryListener:这个类可以帮助我们以异步方式查询ContentProvider。这是一个很好的方式在运行时以异步方式与ContentProvider,它可以防止在查询中从而阻止UI或者ANR弹出...在下面的例子中,我创建了一个定制的监听器的基础上提供的API,AsyncQueryHandler。这个类是因为API级别1。如果你是Android更高的版本,你一定要仔细看看CursorLoader类。
- ViewHolder:这种设计模式省去了经常性的调用findViewById(int)的使用,每次getView / BindView的执行。它由引用 child View 一次存储的标签(setTag(对象))查看和使用那些在重新引用的getView /BindView的方法代码。
- itemview状态缓存:在以前的item,如果要显示需要检查分离器。一个简单的优化是缓存“分隔状态”每个item view。当然,我们需要彻底清除这个缓存(这里我们的基础数据的sursor)时被修改(changeCursor(光标))。
- CharArrayBuffer:一般童鞋经常使用的 getString ()方法取出cursor里的数据。但是它意味着创建的String对象,一旦用户开始滚动列表这些对象可能被garbaged。为了防止重复创建对象,可以使用CharArrayBuffer包括从数据复制光标的原始字符数组,TextView 将直接使用。而不必每次创建一个 String 对象,因此,我们将重用一个CharArrayBuffer。
首先,我们需要创建一个自定义的布局,将每个 cell 的布局。我们只是想显示歌名以及字幕。根据当前的分隔状态的状态我们还需要添加的查看,将gone/visiable;下面的布局很简单:
实际的代码现在我们可以直接深入到Java代码。可能有人会问:为什么我们不为屏幕上创建自定义布局。事实上我们并不需要创建一个自定义布局的ListView;而且ListActivity所提供的正是我们正在寻找一个完全类似的默认布局。我们会让ListActivity布局设置我们的屏幕上做工作。主要java代码: 好了,希望大家happy Coding.!!! 效果图:
Activity, View, ListView, 通讯录, ContentProvider
查看更多>>
分享到: QQ好友和群 QQ空间 腾讯微博 腾讯朋友
收藏24 分享 淘帖 好评 差评 转发到微博相关帖子
回复
举报
NotifyingAsyncQueryHandler代码:
- EOE上的LISTVIEW分组
- eoe上的android开源小项目
- 【eoe资源】如何让Android ListView的平滑滚动
- ListView的分组实现
- ListView的分组实现
- ListView的分组实现
- Android Listview的分组实现
- ReactNative的分组ListView-----SectionList
- eoe的斑竹
- 分组ListView
- Listview分组
- 分组ListView
- ListView 分组
- listview分组
- 转一篇eoe论坛上sfshine大神的文章--AndroidHal底层! ConsumerIrService分析
- EoE Proceeing problem--一些存在于EOE的问题
- android之Listview的分组实现
- android之Listview的分组实现
- 史玉柱的创业经验谈
- hive数据类型(翻译自Hive Wiki)
- UVA 112 Tree Summing
- 增强视觉 | 计算机视觉 增强现实
- 排序算法整理(2)归并排序
- EOE上的LISTVIEW分组
- Linux操作系统主机名(hostname)简介
- 并行作业类型
- eclipse和myeclipse快捷键大全
- 解决sqllite的'unable to open database file'错误
- 2 Java学习之 集合框架
- Android内核剖析读书笔记(1)—Framework概述
- android中Bluetooth属性获取代码分析
- LINUX下如何判断CPU和系统是32位还是64位