Android之Adapter系列之Adapter接口
来源:互联网 发布:天网软件股份有限公司 编辑:程序博客网 时间:2024/05/15 04:51
<pre name="code" class="java">Atapter.java是Android适配器最顶级的接口之一。源码路径:framework\base\core\java\android\widget\Adapter.javapackage android.widget;import android.database.DataSetObserver;import android.view.View;import android.view.ViewGroup;/** * Adapter对象充当View 和该View依赖数据之间的桥梁, * Adapter提供访问的数据项的方式。同时Adapter还负责 * 为数据集合中的每一项提供一个显示的view */public interface Adapter { /** * 注册数据observer,当数据发生变化后通知adtapter更新 */ void registerDataSetObserver(DataSetObserver observer); /** * 和registerDataSetObserver相对应,取消observer注册 */ void unregisterDataSetObserver(DataSetObserver observer); /** * adapte使用的数据有多少项. * * @return Count of items. */ int getCount(); /** * 返回@position位置上的数据 * @param position 需要返回的数据在数据集合中的具体位置 */ Object getItem(int position); /** * 返回@position位置上的数据ID * * @param position 需要返回的数据ID在数据集合中的具体位置 */ long getItemId(int position); /** * 判断关联数据item IDs 是否稳定 * 备注:如果hasStableIds返回false的话 每次调用notifyDataSetChanged * 方法时 adapter就会判断getItemId 并且在只调用那些Item发生变化的getView方法, * 即通过getItemId来判断那些需要getView从而达到局部刷新的效果,在getView比较 * 耗时的情况下起到优化的效果。 * @return ture:如果同一个id一直指向同一个对象. */ boolean hasStableIds(); /** * 为数据项中的每一项返回一个View。 * 开发者可以手动定义view或者使用xml 定义layout,当View inflated完成,如果开发 * 者不通过android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean) * 来指定一个root view,那么该item view 将被添加系统指定的父控件的root view中 * @param position 数据项中需要获取view item的位置 * @param convertView 旧视图重用。 * 备注: 开发者需要判断该View是否为null并且是否该old的view的type是否和目前请求view的item类型是否相同,如果该 * convertView无法成功转换,那么就需要重新创建一个View.异构列表可以区分view类型的号码,这样,convertView一直是正确的 * 查看#getViewTypeCount() 和#getItemViewType(int). * @param parent 该item view 将被attach的父控件 */ View getView(int position, View convertView, ViewGroup parent); /** * 在getview中被需要被忽视的view类型标记。例如,如果客户端不需要特殊类型 * 的view那么使用该标记,可以将其在gteview中过滤掉 */ static final int IGNORE_ITEM_VIEW_TYPE = AdapterView.ITEM_VIEW_TYPE_IGNORE; /** * Get the type of View that will be created by {@link #getView} for the specified item. * 获将要被创建的view的item类型 * @param position 需要获取item类型在数据集合中的位置 * @return 返回代表 item类型是的 integer。如果两个view中,一个可以被转换成另外一个,那么这两个view的类型相同。 * integer的取值范围为 0 ~ getViewTypeCount - 1,同时IGNORE_ITEM_VIEW_TYPE也可以作为返回值 */ int getItemViewType(int position); /** * 返回该adapter要创建的view的类型. 每一种类型代表可以创建的view, * 如果该adapter中所有items返回同一中类型那么该方法返回值为 1; * * @return 返回该adapter要创建的view的类型 */ int getViewTypeCount(); static final int NO_SELECTION = Integer.MIN_VALUE; /** * 如果Adapter 中的数据为空,那么返回值为true。该方法用来判断是否要显示空的view。 * 一个典型的实现是通过getCount() == 0来判断view为空,但是getCount() * 包含了headers和footers,因此通过该方法可以实现当view为空时的一些特殊处理。 */ boolean isEmpty();}
0 0
- Android之Adapter系列之Adapter接口
- Android之Adapter系列之ListAdapter接口
- Android之Adapter系列之SpinnerAdapter接口
- Android之Adapter系列之BaseAdapter类
- Android之Adapter系列之SimpleAdapter类
- Adapter系列之ArrayAdapter
- Adapter系列之SimpleAdapter
- Android之Adapter系列文章介绍
- Android 之Adapter
- android之Adapter
- Android之Adapter
- Android之adapter详解
- android之Adapter
- Android基础之Adapter
- Android之自定义Adapter
- Android之Adapter用法
- Android之Adapter(适配器)
- Android之Adapter用法
- [Cloud Computing]Patterns: Intra-Storage Device Vertical Data Tiering
- linux下创建新用户和切换用户
- html5--超链接
- EventBus使用详解(一)——初步使用EventBus
- 面向对象的六大原则
- Android之Adapter系列之Adapter接口
- sdut oj2124 串结构练习——字符串连接(动态开辟字符数组)
- IP地址
- FZU 1896 神奇的魔法数 数位DP
- 使用Android studio遇到的问题
- iOS动态库和静态库的简单使用
- 互联网协议入门-网络
- angularJs | filter
- stati的使用