1.适配器
抽象的讲,适配器可以为多个不相关的API提供一个公共的接口。具体到android来说,适配器为基于选择的部件背后的数据模型提供一个公共的接口。android的适配器负责为选择部件提供数据源,也负责将单独的数据元素转换为显示在选择部件中的特定视图。
最简单的适配器是ArrayAdapter,我们所要做的就是为这个类的构造器传入一个数组或者一个java.util.List实例,如下:
String[] items = {"1", "2"};
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
在设置列表行布局时,不再向适配器构造传入android.R.layout.simple_list_item_1,
而传入android.R.layout.simple_list_item_single_choice(单选)或android.R.layout.simple_list_item_multiple_choice(多选)
2.为调控件(Spinner)
new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);
//指定用于显示下拉列表的资源
Spinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner.setAdapter(ArrayAdapter);
3.网格(GridView)
4.自动完成字段(AutoCompleteTextView)
可以看成是EditText和Spinner的组合
5.画廊(Gallery)
实际上Gallery就是一个水平排列的列表框,画廊中的项目沿水平方向一个接一个排列,当前选中项会突出显示。
在android设备中,用户可以使用D-pad的左右按钮在画廊中的选项间导航,例如图像预览功能是实用Gallery的经典范例。
6.列表(ListView)
<1>通过布局文件渲染每一行的效果
<2>通过继承ArrayAdapter,重写getview()方法;
小技巧,在getView()方法中,先检查converView是否为空,为空才新建一行View,可以让listview更有效率;
实用持有者模式,findViewById()方法操作代价较大
example:
<3>可重用列表
7.选用其他适配器
对于任何适配器,都可以遵循扩展ArrayAdapter并重写getView()的模式来定义行;
CursorAdapter及其子类对getView()有默认的实现;
同样,getView()方法会检查接收到的View以便重用,如果值为null,getView()调用newView(),在调用bindView().如果不为空,仅调用bindView(),所以想要扩展CursorAdapter应该重写的是newView()及bindView();

被折叠的 条评论
为什么被折叠?



