©
이 문서에서는PHP 중국어 웹사이트 매뉴얼풀어 주다
SimpleAdapter
翻译时间:2010-11-03
版本:Android 2.2 r1
结构
继承关系
public interfaceSimpleAdapterextendsAdapter
java.lang.Object
android.widget.BaseAdapter
android.widget.SimpleAdapter
类概述
这是一个简单的适配器,可以将静态数据映射到XML文件中定义好的视图。你可以指定数据支持的列表如ArrayList组成的Map。在ArrayList中的每个条目对应List中的一行。Maps包含每行数据。你可以指定一个定义了被用于显示行的视图XML文件,通过关键字映射到指定的视图。绑定数据到视图分两个阶段,首先,如果一个SimpleAdapter.ViewBinder是有效的,setViewValue(android.view.View, Object, String)将被调用。如果返回值是真,绑定完成了。如果返回值为假,下面的视图将按以下顺序去处理:
l一个实现了Checkable的视图(例如CheckBox),期望绑定值是一个布尔类型。
lTextView期望绑定值是一个字符串类型,通过调用setViewText(TextView, String)绑定。
lImageView期望绑定值是一个资源id或者一个字符串,通过调用setViewImage(ImageView, int)或setViewImage(ImageView, String)。
如果没有一个合适的绑定发生将会抛出IllegalStateException。
构造函数
publicSimpleAdapter(Contextcontext,List extendsMap<String, ?>> data, int resource,String[]from, int[] to)
构造函数
参数
context关联SimpleAdapter运行着的视图的上下文。
data一个Map的列表。在列表中的每个条目对应列表中的一行,应该包含所有在from中指定的条目
resource一个定义列表项目的视图布局的资源唯一标识。布局文件将至少应包含哪些在to中定义了的名称。
from一个将被添加到Map上关联每一个项目的列名称的列表
to应该在参数from显示列的视图。这些应该全是TextView。在列表中最初的N视图是从参数from中最初的N列获取的值。
公共方法
public intgetCount()
获取数据集中记录总行数
publicViewgetDropDownView(int position,ViewconvertView,ViewGroupparent)
获得一个在指定位置上显示下拉弹出数据的视图。
参数
position想得到项目视图的索引
convertView如果可能旧有的视图重新使用。注解:在使用之前应该检查这个视图不是空的并且类型合适。如果转换视图显示正确的数据是不可能的,这个方法能够创建一个新的视图
parent视图最终将依附的父对象
返回值
一个对应指定位置的数据的视图。
publicFiltergetFilter()
返回一个可以通过一种过滤模式来约束数据的过滤器。
这个方法通常被Adapter类实现。
返回值
一个用于约束数据的过滤器
public abstractObjectgetItem(int position)
获取数据集中指定位置上的数据项目
参数
position在adapter中我们想得到项目的位置。
返回值
指定位置上的数据。
public abstract longgetItemId(int position)
获取数据集中指定位置上的行ID。
参数
position在adapter中我们想得到的行ID的项目的位置。
返回值
指定位置上的数据。
public abstractViewgetView(int position,ViewconvertView,ViewGroupparent)
获取一个显示数据集中指定位置数据段视图。可以手动创建视图,或者从XML设计文件填充。当视图从XML设计文件填充时,父视图(如GridView,ListView等)将接受默认的设计参数,除非使用inflate(int, android.view.ViewGroup, boolean)去指定一个根视图和防止依附于根视图。
参数
position我们想要的在adapter中的数据项目的位置
convertView如果可能旧有的视图重新使用。注解:在使用之前应该检查这个视图不是空的并且类型合适。如果转换视图显示正确的数据是不可能的,这个方法能够创建一个新的视图
parent视图最终将依附的父对象。
返回值
一个在指定位置上相应的数据的视图。
publicSimpleAdapter.ViewBindergetViewBinder()
返回被用来绑定数据到视图的SimpleAdapter.ViewBinder
。
返回值
一个ViewBinder,如果binder不存在则返回null
参见
setViewBinder(android.widget.SimpleAdapter.ViewBinder)
public voidsetDropDownViewResource(int resource)
设置创建下拉视图的布局资源
参数
resource定义下拉视图的布局资源
参见
getDropDownView(int, android.view.View, android.view.ViewGroup)
public voidsetViewBinder(SimpleAdapter.ViewBinderviewBinder)
设置binder用于绑定数据到视图
参数
viewBinder用于绑定数据到视图的binder可以设置为null,可用于删除存在的binder
参见
getViewBinder()
public voidsetViewImage(ImageViewv, int value)
调用bindView去给ImageView设置图像,但只有当ViewBinder不存在或者如果存在的ViewBinder无法处理绑定到一个ImageView时才调用。如果提供的数据是一个整形时,setViewImage(ImageView, String)方法将被本方法替代
参数
v接收图像的ImageView
value从数据集获取数据到值
参见
setViewImage(ImageView, String)
public voidsetViewImage(ImageViewv,Stringvalue)
调用bindView去给ImageView设置图像,但只有当ViewBinder不存在或者如果存在的ViewBinder无法处理绑定到一个ImageView时才调用。默认的,这个值被作为一个图像资源来对待。如果这个值作为一个图像的Uri来使用。如果提供的数据不是一个整形时,setViewImage(ImageView, int)方法将被本方法替代
参数
v接收图像的ImageView
value从数据集获取数据到值
参见
setViewImage(ImageView, int)
public voidsetViewText(TextViewv,Stringtext)
调用bindView去给TextView设置文本,但只有当ViewBinder不存在或者如果存在的ViewBinder无法处理绑定到一个TextView时才调用
参数
v将接收文本的TextView
text被设置到TextView的文本
补充
文章精选
简约而不简单——Android SimpleAdapter
android listview组件之ArrayAdapter,SimpleAdapter
Android用simpleAdapter来直接显示BMP图片(有ViewBinder用法)
示例代码
privateListViewlv;
privateListdata;
privateSimpleAdaptersAdapter;
lv= (ListView)findViewById(R.id.listview);
data=newArrayList
for(inti = 0; i < 10; i++) {
Map
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=newSimpleAdapter(getApplicationContext(),
data,
R.layout.item,
newString[]{"title","content","check","check1","image"},
newint[]{R.id.title,R.id.content,R.id.check,R.id.check1, R.id.image});
lv.setAdapter(sAdapter);