前言
声明
欢迎转载,但请保留文章原始出处:)
正文
一、结构
public interface spinneradapter extends adapter
java.lang.object
android.widget.baseadapter
android.widget. spinneradapter
二、概述
这是一个简单的适配器,可以将静态数据映射到xml文件中定义好的视图。你可以指定数据支持的列表如arraylist组成的map。在arraylist中的每个条目对应list中的一行。maps包含每行数据。你可以指定一个定义了被用于显示行的视图xml文件,通过关键字映射到指定的视图。绑定数据到视图分两个阶段,首先,如果一个simpleadapter.viewbinder是有效的,setviewvalue(android.view.view, object, string)将被调用。如果返回值是真,绑定完成了。如果返回值为假,下面的视图将按以下顺序去处理:
一个实现了checkable的视图(例如checkbox),期望绑定值是一个布尔类型。
textview期望绑定值是一个字符串类型,通过调用setviewtext(textview, string)绑定。
imageview期望绑定值是一个资源id或者一个字符串,通过调用setviewimage(imageview, int) 或 setviewimage(imageview, string)。
如果没有一个合适的绑定发生将会抛出illegalstateexception。
三、构造函数
构造函数
参数
context 关联simpleadapter运行着的视图的上下文。
data 一个map的列表。在列表中的每个条目对应列表中的一行,应该包含所有在from中指定的条目
resource 一个定义列表项目的视图布局的资源唯一标识。布局文件将至少应包含哪些在to中定义了的名称。
from 一个将被添加到map上关联每一个项目的列名称的列表
to 应该在参数from显示列的视图。这些应该全是textview。在列表中最初的n视图是从参数from中最初的n列获取的值。
四、公共方法
public int getcount ()
获取数据集中记录总行数
获得一个在指定位置上显示下拉弹出数据的视图。
position 想得到项目视图的索引
convertview 如果可能旧有的视图重新使用。注解:在使用之前应该检查这个视图不是空的并且类型合适。如果转换视图显示正确的数据是不可能的,这个方法能够创建一个新的视图
parent 视图最终将依附的父对象
返回值
一个对应指定位置的数据的视图。
返回一个可以通过一种过滤模式来约束数据的过滤器。
这个方法通常被adapter类实现。
返回值
一个用于约束数据的过滤器
获取数据集中指定位置上的数据项目
position 在adapter中我们想得到项目的位置。
返回值
指定位置上的数据。
public abstract long getitemid (int position)
获取数据集中指定位置上的行id。
position 在adapter中我们想得到的行id的项目的位置。
获取一个显示数据集中指定位置数据段视图。可以手动创建视图,或者从xml设计文件填充。当视图从xml设计文件填充时,父视图(如gridview,listview等)将接受默认的设计参数,除非使用inflate(int, android.view.viewgroup, boolean)去指定一个根视图和防止依附于根视图。
position 我们想要的在adapter中的数据项目的位置
parent 视图最终将依附的父对象。
一个在指定位置上相应的数据的视图。
返回被用来绑定数据到视图的<code>simpleadapter.viewbinder</code> 。
一个viewbinder ,如果binder不存在则返回null
参见
public void setdropdownviewresource (int resource)
设置创建下拉视图的布局资源
resource 定义下拉视图的布局资源
设置binder用于绑定数据到视图
viewbinder 用于绑定数据到视图的binder可以设置为null,可用于删除存在的binder
调用bindview去给imageview设置图像,但只有当viewbinder不存在或者如果存在的viewbinder无法处理绑定到一个imageview时才调用。如果提供的数据是一个整形时,setviewimage(imageview, string)方法将被本方法替代
v 接收图像的imageview
value 从数据集获取数据到值
参见
调用bindview去给imageview设置图像,但只有当viewbinder不存在或者如果存在的viewbinder无法处理绑定到一个imageview时才调用。默认的,这个值被作为一个图像资源来对待。如果这个值作为一个图像的uri来使用。如果提供的数据不是一个整形时,setviewimage(imageview, int)方法将被本方法替代
v 接收图像的imageview
调用bindview去给textview设置文本,但只有当viewbinder不存在或者如果存在的viewbinder无法处理绑定到一个textview时才调用
v 将接收文本的textview
text 被设置到textview的文本
五、补充
文章精选
示例代码

private listview lv;
private list<map<string,string>> data;
private simpleadapter sadapter;
lv = (listview)findviewbyid(r.id.listview);
data = new arraylist<map<string, object>>();
for (int i = 0; i < 10; i++) {
map<string, object> map = new hashmap<string, object>();
map.put("title", "apple");
map.put("content", "can eat");
map.put("check", true);
map.put("check1", "true");
map.put("image", r.drawable.icon);
data.add(map);
}
sadapter = new simpleadapter(getapplicationcontext(),
data,
r.layout.item,
new string[]{"title","content","check","check1","image"},
new int[]{r.id.title,r.id.content,r.id.check,r.id.check1, r.id.image});
lv.setadapter(sadapter);
结束
android2.3发布在即,抓紧出合集,目前生成chm还有一点问题,完全通过后开始全面采用javadoc格式的api文档,敬请期待。
转载:http://www.cnblogs.com/over140/archive/2010/11/24/1886151.html