Android学习笔记(22):AdapterView与Adapter
来源:互联网 发布:工具箱知乎 编辑:程序博客网 时间:2024/05/17 23:56
AdapterView继承自ViewGroup,是一个抽象基类,作为容器使用,容器内是多个列表项,列表项有相似的形式,列表项的内容由Adapter提供。调用AdapterView的setAdapter(Adapter)方法设置内容。
AdapterView派生了三个子类:ABSListView、AbsSpinner和AdapterViewAnimator,这也是抽象类。
AbsListView支持的XML属性和相关方法:
Attribute Name
Related Method
Description
android:cacheColorHint
指示该列表总是在固定的单色、不透明的背景下绘制。这允许列表优化其绘制过程
android:choiceMode
设置AbsListView的选择行为:
none:不显示任何选中项
singleChoice:允许单选
multipleChoice:允许多选
multipleChoiceModal:允许多选
android:drawSelectorOnTop
setDrawSelectorOnTop(boolean)
设置为true,选中的列表项显示在上面
android:fastScrollEnabled
设置是否允许快速滚动,设置为true,将会显示滚动图标,允许用户拖动图标快速滚动
android:listSelector
setSelector(int)
指定被选中的列表项上绘制的Drawable
android:scrollingCache
当为真时,列表滚动使用绘图缓存。该选项使渲染更快,但占用更多的内存。 默认值为真
android:smoothScrollbar
setSmoothScrollbarEnabled(boolean)
为真时,列表会使用更精确的基于条目在屏幕上的可见像素高度的计算方法。 默认该属性为真,如果你的适配器需要绘制可变高的条目,他应该设为假。 当该属性为真时,你在适配器在显示变高条目时,滚动条的把手会在滚动的 过程中改变大小。当设为假时,列表只使用适配器中的条目数和屏幕上的 可见条目来决定滚动条的属性
android:stackFromBottom
用于 ListView 和 GridView,指示他们的内容栈从底部开始排列列表项
android:textFilterEnabled
设为真时,列表会过滤根据用户的要求,过滤结果集。列表的适配器必须实现了 Filterable 接口,才能使其可用
android:transcriptMode
设置组件的滚动方式:
disabled:默认值,关闭滚动
normal:收到数据改变通知,且最后一个列表可见时,将会滚动到底部
alwaysScroll:总会自动滚动到底部
Adapter接口及其实现类的使用见上一篇转载的文章。
这里在总结一下:
1.用android:entries设置内容。
2.ArrayAdapter:简单、易用。数组和List集合作为数据源。
3.SimpleAdapter:功能强大,数据源List<Map<“键”,“值”>>形式的数据。
4.SimpleCursorAdapter:与SimpleAdapter相似,用于包装Cursor提供的数据。
5.BaseAdapter:通常用于扩展,可以继承得到自定义的Adapter。
数据填充
1:声明AdapterView对象,根据ID利用findViewById方法找到此对象
2:声明Adapter对象,根据构造方法实例化此对象。具体如下:
(1)ArrayAdapter<数据类型> adapter = new ArrayAdapter<数据类型>(context:一般指当前Activity对象,layout:每个列表项显示的布局,data:数据源变量);
(2)SimpleAdapter adapter = new SimpleAdapter(context:一般指当前Activity对象,data:数据源变量,layout:每个列表项显示的布局,new String[]{}:数据源中的“键”,new int[]{}:显示数据源的控件ID);
(3)自定义Adapter类 adapter = new 自定义Adapter类构造方法;
3:绑定Adapter对象到Adapter上
AdapterView对象.setAdapter(Adapter对象);
继承BaseAdapter自定义Adapter需要重写的方法:
(1) int getCount():返回的是数据源对象的个数,即列表项数
(2) Object getItem(int position):返回指定位置position上的列表
(3) long getItemId(int position):返回指定位置处的行ID
(4) View getView():返回列表项对应的视图,方法体中需要:
1.实例化视图填充器
2.用视图填充器,根据Xml文件,实例化视图
3.根据布局找到控件,并设置属性
4.返回View视图
- Android学习笔记(22):AdapterView与Adapter
- 精通Android学习笔记-AdapterView和Adapter
- 安卓Adapter 与AdapterView笔记
- Android Adapter机制 源码笔记(4): AdapterView
- Android中AdapterView/Adapter的深度学习
- Android中AdapterView/Adapter的深度学习
- Android高级控件----AdapterView与Adapter
- Android高级控件----AdapterView与Adapter
- Android高级控件----AdapterView与Adapter详解
- Android高级控件----AdapterView与Adapter
- Android高级控件----AdapterView与Adapter
- Android高级控件----AdapterView与Adapter
- Android高级控件----AdapterView与Adapter
- Android高级控件----AdapterView与Adapter
- Android高级控件----AdapterView与Adapter
- Android适配器视图与适配器AdapterView & Adapter
- AdapterView、Adapter深度学习
- AdapterView 与 Adapter
- Codeforces Educational Codeforces Round 3 D. Gadgets for dollars and pounds(二分 + 贪心)
- CSS3 仿古墓丽影9菜单界面
- OC的description方法
- Sicily 1001. Alphacode
- org.hibernate.PersistentObjectException: detached entity passed to persist:报错解决方法
- Android学习笔记(22):AdapterView与Adapter
- 237. Delete Node in a Linked List
- import TensorFlow提示Unable to load cuDNN DSO
- Linux同步时间
- 有关11n only和11bg mixed和11bgn mixed区别问题的记录
- (JavaFX 版)综合性实验 学生成绩分析程序
- 动态修改UINavigationBar的背景色
- 【jQuery】表单验证插件——validate
- spark-1.2.0 集群环境搭建