来自:http://blog.csdn.net/zhengzhihao1/ 转载请标明出处。

Android适配器之-----SimpleAdapter

结构

继承关系

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)将被调用。如果返回值是真,绑定完成了。如果返回值为假,下面的视图将按以下顺序去处理:

l  一个实现了Checkable的视图(例如CheckBox),期望绑定值是一个布尔类型。

l  TextView期望绑定值是一个字符串类型,通过调用setViewText(TextView, String)绑定。

l  ImageView期望绑定值是一个资源id或者一个字符串,通过调用setViewImage(ImageView, int) 或setViewImage(ImageView, String)。

如果没有一个合适的绑定发生将会抛出IllegalStateException。

构造函数

public SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

构造函数

参数

context   关联SimpleAdapter运行着的视图的上下文。

data        一个Map的列表。在列表中的每个条目对应列表中的一行,应该包含所有在from中指定的条目

resource              一个定义列表项目的视图布局的资源唯一标识。布局文件将至少应包含哪些在to中定义了的名称。

from       一个将被添加到Map上关联每一个项目的列名称的列表

to    应该在参数from显示列的视图。这些应该全是TextView。在列表中最初的N视图是从参数from中最初的N列获取的值。

公共方法

public int getCount()

获取数据集中记录总行数

public View getDropDownView(int position, View convertView, ViewGroup parent)

获得一个在指定位置上显示下拉弹出数据的视图。

参数

position         想得到项目视图的索引

convertView  如果可能旧有的视图重新使用。注解:在使用之前应该检查这个视图不是空的并且类型合适。如果转换视图显示正确的数据是不可能的,这个方法能够创建一个新的视图

parent           视图最终将依附的父对象

返回值

一个对应指定位置的数据的视图。

public Filter getFilter()

返回一个可以通过一种过滤模式来约束数据的过滤器。

这个方法通常被Adapter类实现。

返回值

一个用于约束数据的过滤器

public abstract Object getItem(int position)

获取数据集中指定位置上的数据项目

参数

position  在adapter中我们想得到项目的位置。

返回值

指定位置上的数据。

public abstract long getItemId(int position)

获取数据集中指定位置上的行ID。

参数

position  在adapter中我们想得到的行ID的项目的位置。

返回值

指定位置上的数据。

public abstract View getView(int position, View convertView, ViewGroup parent)

获取一个显示数据集中指定位置数据段视图。可以手动创建视图,或者从XML设计文件填充。当视图从XML设计文件填充时,父视图(如GridView,ListView等)将接受默认的设计参数,除非使用inflate(int, android.view.ViewGroup, boolean)去指定一个根视图和防止依附于根视图。

参数

position  我们想要的在adapter中的数据项目的位置

convertView  如果可能旧有的视图重新使用。注解:在使用之前应该检查这个视图不是空的并且类型合适。如果转换视图显示正确的数据是不可能的,这个方法能够创建一个新的视图

parent    视图最终将依附的父对象。

返回值

一个在指定位置上相应的数据的视图。

public SimpleAdapter.ViewBinder getViewBinder()

返回被用来绑定数据到视图的SimpleAdapter.ViewBinder

返回值

一个ViewBinder ,如果binder不存在则返回null

参见

setViewBinder(android.widget.SimpleAdapter.ViewBinder)

public void setDropDownViewResource(int resource)

设置创建下拉视图的布局资源

参数

resource       定义下拉视图的布局资源

参见

getDropDownView(int, android.view.View, android.view.ViewGroup)

public void setViewBinder(SimpleAdapter.ViewBinder viewBinder)

设置binder用于绑定数据到视图

参数

viewBinder    用于绑定数据到视图的binder可以设置为null,可用于删除存在的binder

参见

getViewBinder()

public void setViewImage(ImageView v, int value)

调用bindView去给ImageView设置图像,但只有当ViewBinder不存在或者如果存在的ViewBinder无法处理绑定到一个ImageView时才调用。如果提供的数据是一个整形时,setViewImage(ImageView, String)方法将被本方法替代

参数
              v     接收图像的ImageView

value      从数据集获取数据到值

参见

setViewImage(ImageView, String)

public void setViewImage(ImageView v, String value)

调用bindView去给ImageView设置图像,但只有当ViewBinder不存在或者如果存在的ViewBinder无法处理绑定到一个ImageView时才调用。默认的,这个值被作为一个图像资源来对待。如果这个值作为一个图像的Uri来使用。如果提供的数据不是一个整形时,setViewImage(ImageView, int)方法将被本方法替代

参数

v     接收图像的ImageView

value      从数据集获取数据到值

参见

setViewImage(ImageView, int)

public void setViewText(TextView v, String text)

调用bindView去给TextView设置文本,但只有当ViewBinder不存在或者如果存在的ViewBinder无法处理绑定到一个TextView时才调用

参数

v     将接收文本的TextView

text 被设置到TextView的文本

补充

文章精选

简约而不简单——Android SimpleAdapter

android listview组件之ArrayAdapter,SimpleAdapter

Android用simpleAdapter来直接显示BMP图片(有ViewBinder用法)

示例代码

                  

         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"},

newint[]{R.id.title,R.id.content,R.id.check,R.id.check1, R.id.image});

lv.setAdapter(sAdapter);

Android适配器之---SimpleCursorAdapter

结构

继承关系

public class SimpleCusrorAdapter extends ResourceCusorAdpater

java.lang.Object

android.widget.BaseAdapter

android.widget.CursorAdapter

android.widget.ResourceCusorAdapter

android.widget.SimpleCusorAdapter

类概述

这是一个用起来很方便的适配器类,它主要将Cursor与TexiView或ImageView进行映射。比如,你想设定要展示三列,那么当做好绑定之后,视图就会展示你设定好的那些列;当然了,视图的外观是定义在XML文件里面的,你只需用这个类与视图做好绑定就可以了。与视图绑定有两个阶段。第一阶段:如果SimpleCursorAdapter.ViewBinder可用,将会调用setViewValue(android.view.View, android.database.Cursor, int)方法。该方法返回true就说明绑定成功,否则返回false ,这就到了第二阶段,SimpleCursorAdapter内部开始自行绑定,过程是这样的,若绑定到TextView上,调用setViewText();若绑定到ImageView上,调用setViewImage();如果视图不是TextView或ImageView则抛出IllegalStateException异常。当使用带有过滤器的适配器时,例如,在APIDemo中有个AutoCompleteTextView的例子,我们能使用SimpleCursorAdapter.CursorToStringConverter和接口         FilterQueryProvider来控制过滤过程。更多信息请参考convertToString(android.database.Cursor) 和runQueryOnBackgroundThread(CharSequence)

内部类

public interface SimpleCusorAdapter.ViewBinder

这个内部接口可以在外部通过SimpleCursorAdapter.ViewBinder的方式进行Cursor     与View的绑定。

public interface SimpleCusorAdapter.CursorToStringConverter

这个内部接口可以在外部通过SimpleCursorAdapter.CursorToStringConverter的方式   定义怎样将Cursor转换成字符串。

构造函数

public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to)

构造函数启动自动重新查询(auto-requery)。

这个构造器已被标记为弃用(@Deprecated) 。

该方法不推荐使用,Cursor查询操作是执行在应用程序的UI线程当中,那么会导致无响应的情况。另一种方式是使用LoaderManager和CursorLoader来进行。

(译者注:3.0已不推荐使用该构造方法)

参数

context  应用程序上下文,具体来说就是ListView所在的上下文当中。

layout       布局文件的资源定位标识符,也就是说标识了ListView中的item。那么这个布局文件至少包含了参数“to”中的传进来值。

c                 数据库游标,如果游标不可用则为null。

from                   列名字列表,表示着你要绑定到UI上的列。如果游标不可用则为null。

to               展示参数“from”中的列,也就是说ListView中的视图显示的是参数“from”的列值,这些视图应该都是TextView。如果游标不可用则为null。

public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[]      to,int flags)

该适配器类标准的构造函数。(译者注:3.0新添的构造方法)

参数

context  应用程序上下文,具体来说就是ListView所在的上下文当中。

layout       布局文件的资源定位标识符,也就是说标识了ListView中的item。那么这个布局文件至少包含了参数“to”中的传进来值。

c                数据库游标,如果游标不可用则为null。

from                   列名字列表,表示着你要绑定到UI上的列。如果游标不可用则为null。

to               展示参数“from”中的列,也就是说ListView中的视图显示的是参数“from”的列值,这些视图应该都是TextView。如果游标不可用则为null。

flags                   这个标志用来决定该适配器的行为。(译者注:Android3.0推荐我们传递CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER。设置标志用来添加一个监听器,监听着参数cursor的数据是否有更变。)

公共方法

public void bindView (View view, Context context, Cursor cursor)

绑定所有构造函数中的参数from(字段名)一一绑定到参数to(视图资源ID)。与视图绑定有两个阶段。第一阶段:如果SimpleCursorAdapter.ViewBinder可用,将会调用setViewValue(android.view.View, android.database.Cursor, int)方法。该方法返回true就说明绑定成功,否则返回false ,这就到了第二阶段,SimpleCursorAdapter内部开始自行绑定,过程是这样的,若绑定到TextView上,调用setViewText();若绑定到ImageView上,调用setViewImage();如果视图不是TextView或ImageView则抛出IllegalStateException异常。

参数

view                 已存在的视图(View)对象, 也就是早先new出来的。

context           应用程序上下文。

cursor               数据库游标。该游标已经移动到指定位置上。

异常

IllegalStateException 如果绑定的视图中不是TextView或是ImageView则会                           抛出这个异常。

参见

bindView(android.view.View, android.content.Context, android.database.Cursor)

getViewBinder()

setViewBinder(android.widget.SimpleCursorAdapter.ViewBinder)

setViewImage(ImageView, String)

                            setViewText(TextView, String)

public void changeCursorAndColumns(Cursor c, String[] from, int[] to)

同时更改Cursor与View的映射关系。

参数

c                 数据库游标,如果游标不可用则为null。

from                   列名字列表,表示着你要绑定到UI上的列。如果游标不可用则为null。

to               展示参数“from”中的列,也就是说ListView中的视图显示的是参数“from”的列值,这些视图应该都是TextView。如果游标不可用则为null。

public CharSequence convertToString (Cursor cursor)

通过CursorToStringConverter接口实现并返回一个CharSequence  类型的值,以表示指定的Cursor。如果没有设置CursorToStringConverter,那么就会用另外的方式进行转换。如果列数为-1,或者 cursor为null返回空串,否则返回cursor.toString()。

参数

cursor               转换为CharSequence的数据库游标。

返回值

返回一个不为null的CharSequence类型来表示参数cursor。

public SimpleCursorAdapter.CursorToStringConverter getCursorToStringConverter ()

返回自定义的SimpleCursorAdapter.CursorToStringConverter的实现。

返回值

如果没有设置SimpleCursorAdapter.CursorToStringConverter,则为null。

参考

setCursorToStringConverter(android.widget.SimpleCursorAdapter.CursorToStringConverter)

getStringConversionColumn()

setStringConversionColumn(int)

convertToString(android.database.Cursor)

public int getStringConversionColumn ()

返回转换成String类型的列位置。

返回值

返回列位置,如果没有则返回-1。

参考

convertToString(android.database.Cursor)

setStringConversionColumn(int)

setCursorToStringConverter(android.widget.SimpleCursorAdapter.CursorToStringConverter)

getCursorToStringConverter()

public SimpleCursorAdapter.ViewBinder getViewBinder ()

返回SimpleCursorAdapter.ViewBinder引用,这个ViewBinder用来将数据绑定到视图上的。

返回值

如果ViewBinder不存在,则返回null。

参考

bindView(android.view.View, android.content.Context, android.database.Cursor)

setViewBinder(android.widget.SimpleCursorAdapter.ViewBinder)

public void setCursorToStringConverter (SimpleCursorAdapter.CursorToStringConverter cursorToStringConverter)

设置String转换器。

参数

cursorToStringConverter  String转换器,设置为null就意味着移除。

参考

setCursorToStringConverter(android.widget.SimpleCursorAdapter.CursorToStringConverter)

getStringConversionColumn()

setStringConversionColumn(int)

convertToString(android.database.Cursor)

public void setStringConversionColumn (int stringConversionColumn)

设置Cursor中的列要转换成String类型的位置。不过仅当未设置CursorToStringConverter时,这个列才会进行默认转换。

参数

stringConversionColumn  列位置,如果参数为-1,则使用默认转换机制。

参考

convertToString(android.database.Cursor)

getStringConversionColumn()

setCursorToStringConverter(android.widget.SimpleCursorAdapter.CursorToStringConverter)

getCursorToStringConverter()

public void setViewBinder (SimpleCursorAdapter.ViewBinder viewBinder)

设置视图绑定器。

参数

viewBinder  视图绑定器,可用为null删除现有的绑定器。

参考

bindView(android.view.View, android.content.Context, android.database.Cursor)

getViewBinder()

public void setViewImage (ImageView v, String value)

仅当ViewBinder不存在或是当ViewBinder不为ImageView绑定时(也就是setViewValue()返回false),则这个方法会被bindView()调用,以便为ImageView设置图片。默认情况下,参数value作为图片资源ID来看待,否则,会视为图片的Uri。         另外还可以通过过滤器来获得更灵活的设置。

参数

v                 图片控件引用

value         图片资源ID,是从Cursor获取到的。

public void setViewText (TextView v, String text)

仅当ViewBinder不存在或是当ViewBinder不为TextView绑定时(也就是setViewValue()返回false),则这个方法会被bindView()调用,以便为TextView设置文本。可用重写适配器从数据库中检索过滤字符串。

参数

v                 文本控件引用

value         为文本控件设置的文本信息(译者注:是从Cursor获取到的)。

public Cursor swapCursor (Cursor c)

交换两个Cursor的列以及它们的数据,并最终返回的还是旧的Cursor。不同于changeCursor(Cursor)的是,旧的Cursor非但不会关闭,而且还会返回出去。(译者注:       3.0新添的方法)

参数

c  新的Cursor对象。

返回值

返回旧的Cursor引用,如果参数cursor不可用,则返回null。如果参数cursor与原来的Cursor引用相同,那么也返回null。

补充

文章精选

ArrayAdapter和SimpleCursorAdapter例子

Android API : SimpleCursorAdapter()

Android适配器之-----SimpleCursorTreeAdapter

结构

继承关系

public abstract class SimpleCusrorTreeAdapter extends     

                                            ResourceCusorTreeAdpater

java.lang.Object

android.widget.BaseExpandableListAdapter

android.widget.CursorTreeAdapter

android.widget.ResourceCusorTreeAdapter

android.widget.SimpleCursorTreeAdapter

类概述

这是一个用起来很方便的适配器类,它主要将Cursor与在XML文件中定义的TextView或ImageView进行映射。比如,你想设定要展示三列,那么当做好绑定之后,视图就会展示你设定好的那些列;当然了,视图的外观是定义在XML文件里面的,你只需用这个类与视图做好绑定就可以了。(译者注:Android推荐我们尽可能的将组视图和子视图分离开,也就是说不要把整体定义在一个布局文件当中。)与视图绑定有两个阶段。第一阶段:如果使用SimpleCursorTreeAdapter.ViewBinder时,那么就会调用setViewValue(android.view.View, android.database.Cursor, int)方法。该方法返回true就说明绑定成功,否则返回false,这就到了第二阶段,SimpleCursorAdapter内部开始自行绑定,过程是这样的,若绑定到TextView上,调用setViewText(TextView, String);若绑定到ImageView上,调用setViewImage(ImageView, String),如果视图不是TextView或ImageView则抛出IllegalStateException异常。

内部类

public interface SimpleCursorTreeAdapter.ViewBinder

这个内部接口可以在外部通过SimpleCursorTreeAdapter.ViewBinder的方式进行 Cursor与View的绑定。

构造函数

public SimpleCursorTreeAdapter (Context context, Cursor cursor, int collapsedGroupLayout, int expandedGroupLayout, String[] groupFrom, int[] groupTo, int childLayout, int lastChildLayout, String[] childFrom, int[] childTo)

构造函数。

参数

context    上下文,多指ExpandableListView的上下文

cursor       数据库游标

collapsedGroupLayout     布局资源文件标识ID,其定义的是收缩时的ExpandableListView布局样式,并且内部至少要包含参数“groupTo”中指定的视图ID。

expandedGroupLayout    布局资源文件标识ID,其定义的是展开时的ExpandableListView布局样式,并且内部至少要包含参数“groupTo”中指定的视图ID。

groupFrom       列名列表,显示ExpandableListView的组节点。

groupTo             展示参数“groupFrom”中的列,也就是说ExpandableListView中的视图显示的是参数 “groupFrom”的列值,它们应该都是TextView或是ImageView。

childLayout       布局资源文件标识ID,其定义的是子视图的布局样式 (不包括最后一个子视图),内部至少要包含参数 “childTo”中指定的视图ID。lastChildLayout布局资源文件标识ID,其定义的是最后一个子视图的布局样式,内部至少要包含参数“childTo”中指定的视图ID。

lastChildLayout        布局资源文件标识ID,其定义的是最后一个子视图的布局样式,内部至少要包含参数“childTo”中指定的视图ID。lastChildLayout布局资源文件标识ID,其定义的是最后一个子视图的布局样式,内部至少要包含参数“childTo”中指定的视图ID。

childFrom          列名列表,显示ExpandableListView的子节点。

childTo               展示参数“childFrom ”中的列,也就是说ExpandableListView中的视图显示的是参数 “childFrom  ”的列值,它们应该都是TextView或是ImageView。

public SimpleCursorTreeAdapter (Context context, Cursor cursor, int collapsedGroupLayout, int expandedGroupLayout, String[] groupFrom, int[] groupTo, int childLayout, String[] childFrom, int[] childTo)

构造函数。(译者注:该构造函数只是少了一个参数lastChildLayout)

参数

context    上下文,多指ExpandableListView的上下文

cursor       数据库游标

collapsedGroupLayout     布局资源文件标识ID,其定义的是收缩时的ExpandableListView布局样式,并且内部至少要包含参数“groupTo”中指定的视图ID。

expandedGroupLayout    布局资源文件标识ID,其定义的是展开时的ExpandableListView布局样式,并且内部至少要包含参数“groupTo”中指定的视图ID。

groupFrom       列名列表,显示ExpandableListView的组节点。

groupTo             展示参数“groupFrom”中的列,也就是说ExpandableListView中的视图显示的是参数 “groupFrom”的列值,它们应该都是TextView或是ImageView。

childLayout       布局资源文件标识ID,其定义的是子视图的布局样式 (不包括最后一个子视图),内部至少要包含参数 “childTo”中指定的视图ID。lastChildLayout布局资源文件标识ID,其定义的是最后一个子视图的布局样式,内部至少要包含参数“childTo”中指定的视图ID。

childFrom          列名列表,显示ExpandableListView的子节点。

childTo               展示参数“childFrom ”中的列,也就是说ExpandableListView中的视图显示的是参数 “childFrom  ”的列值,它们应该都是TextView或是ImageView。

public SimpleCursorTreeAdapter (Context context, Cursor cursor, int groupLayout, String[] groupFrom, int[] groupTo, int childLayout, String[] childFrom, int[] childTo)

构造函数。

参数

context    上下文,多指ExpandableListView的上下文

cursor       数据库游标

groupLayout  显示组元素的资源文件。该资源文件定义了如何显示组元素。该布局文件必须至少包括groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

groupFrom       列名列表,显示ExpandableListView的组节点。

groupTo             展示参数“groupFrom”中的列,也就是说ExpandableListView中的视图显示的是参数 “groupFrom”的列值,它们应该都是TextView或是ImageView。

childLayout       布局资源文件标识ID,其定义的是子视图的布局样式 (不包括最后一个子视图),内部至少要包含参数 “childTo”中指定的视图ID。lastChildLayout布局资源文件标识ID,其定义的是最后一个子视图的布局样式,内部至少要包含参数“childTo”中指定的视图ID。

childFrom          列名列表,显示ExpandableListView的子节点。

childTo               展示参数“childFrom ”中的列,也就是说ExpandableListView中的视图显示的是参数 “childFrom  ”的列值,它们应该都是TextView或是ImageView。

公共方法

public SimpleCursorAdapter.ViewBinder getViewBinder ()

返回SimpleCursorTreeAdapter.ViewBinder引用,这个ViewBinder用来将数据绑定到 视图上的。

返回值

如果ViewBinder不存在,则返回null。

参考

setViewBinder(android.widget.SimpleCursorTreeAdapter.ViewBinder)

public void setViewBinder (SimpleCursorTreeAdapter.ViewBinder viewBinder)

.        设置视图绑定器。

参数

viewBinder  视图绑定器。可以设置为null来删除已经存在的绑定器。

参考

getViewBinder()

public void setViewText (TextView v, String text)

仅当ViewBinder不存在或是当ViewBinder不为TextView绑定时(也就是setViewValue()返回false),则这个方法会被bindView()调用,以便为TextView设置文本。可重写适配器从数据库中检索过滤字符串。

参数

v          文本控件引用

value      为文本控件设置的文本信息(译者注:是从Cursor获取到的)。

受保护方法

protected void bindChildView (View view, Context context, Cursor cursor, boolean isExpanded)

通过参数cursor将数据绑定到已有的子视图上。。

参数

view                 已有视图,返回之前调用newChildView创建的视图。

context           应用程序上下文

cursor             用于获取数据的Coursor。Coursor已经移到正确的位置。

isLastChild   子元素是否处于组中的最后一个

protected void bindGroupView (View view, Context context, Cursor cursor, boolean isExpanded)

通过参数cursor将数据绑定到已有组视图上。

参数

view                 已有组视图,返回之前调用newGroupView创建的视图。

context           应用程序上下文

cursor             用于获取数据的Coursor。Coursor已经移到正确的位置。

isExpanded   组视图是否呈展开状态

protected void setViewImage (ImageView v, String value)

这个方法会被bindView()调用,以便为ImageView设置图片。默认情况下,参数value作为图片资源ID来看待,否则会视为图片的Uri。   另外还可以通过过滤器来获得更灵活的设置。

参数

v          图片控件引用

value  图片资源ID,是从Cursor获取到的。

补充

文章精选

android播放器(music player)源码分析2

Android适配器之-----SimpleExpandableListAdapter

结构

继承关系

public abstract class SimpleExpandableListAdapter extends BaseExpandableListAdapter

java.lang.Object

android.widget.BaseExpandableListAdapter

android.widget.SimpleExpandableListAdapter

类概述

一个使用Map存储组元素和子元素的静态数据,使用XML资源文件定义组元素和子元素View如何显示的简单适配器。你可以区分指定组元素返回的数据是List<Map>类型。在ArrayList中的每个实体对应ExpandalbeList中的一个组。实体中的Map列表包含了组下的每行数据。你也可以指定一个XML文件来定义用于在组元素的View的显示。此时Map中的键值将与指定的View(XML中定义的view id)对应起来。子元素的处理情况类似。注意当可折叠的深度若不只1层,返回的数据将被指定为List类型。首个List对应子元素中所代表的组,第二个List对应孙子元素在子元素组中的位置。Map亦将支持这样的特殊元素。(子元素嵌套组元素的情况)

(译者注:ExpandableList支持深度大于1的情况。在andorid自带的ApiDomos的例子中有这个的代码:App/View/ExpandableList3)。

构造函数

publicSimpleExpandableListAdapter(Contextcontext,List<? extends Map<String, ?>> groupData, int groupLayout,String[]groupFrom, int[] groupTo,List<? extends List<? extends Map<String, ?>>> childData, int childLayout,String[]childFrom, int[] childTo)

构造函数

参数

context        与SimpleExpandableListAdapter关联的ExpandableListView的上下文。

groupData     一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录。

groupLayout   显示组元素的资源文件。该资源文件定义了如何显示组元素。该布局文件必须至少包括groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

groupFrom       一个键值列表。对应与组相关联的Map中的键值。

grouptTo           组View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个groupFrom参数获得列元素的数据。

childData       一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。

childLayout       显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View。(即childTo中的view id数组必须都在该布局文件中找到)

childFrom        定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。

childTo      子View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个childFrom参数获得列元素的数据。

publicSimpleExpandableListAdapter(Contextcontext,List<? extends Map<String, ?>> groupData, int expandedGroupLayout, int collapsedGroupLayout,String[]groupFrom, int[] groupTo,List<? extends List<? extends Map<String, ?>>> childData, int childLayout,String[]childFrom, int[] childTo)

构造函数。

参数

                   context        与SimpleExpandableListAdapter关联的ExpandableListView的上下文。

groupData     一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录。

expandedGroupLayout           定义组展开时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

collapasedGroupLayout            定义组折叠时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

groupFrom       一个键值列表。对应与组相关联的Map中的键值。

grouptTo           组View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个groupFrom参数获得列元素的数据。

childData         一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。

childLayout       显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View。(即childTo中的view id数组必须都在该布局文件中找到)

childFrom        定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。

childTo      子View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个childFrom参数获得列元素的数据。

publicSimpleExpandableListAdapter(Contextcontext,List<? extends Map<String, ?>> groupData, int expandedGroupLayout, int collapsedGroupLayout,String[]groupFrom, int[] groupTo,List<? extends List<? extends Map<String, ?>>> childData, int childLayout, int lastChildLayout,String[]childFrom, int[] childTo)

构造函数。

参数

                   context        与SimpleExpandableListAdapter关联的ExpandableListView的上下文。

groupData     一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录。

expandedGroupLayout  定义组展开时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

collapasedGroupLayout  定义组折叠时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

groupFrom       一个键值列表。对应与组相关联的Map中的键值。

grouptTo  组View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个groupFrom参数获得列元素的数据。

childData         一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。

childLayout       显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View。(即childTo中的view id数组必须都在该布局文件中找到)

lastChildLayout  定义每组中最后一个子元素的View资源布局情况。该布局文件应当至少包括所有在childTo中所定义的View。(即childTo中的View id数组必须都在该布局文件中找到)

childFrom        定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。

childTo        子View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个childFrom参数获得列元素的数据。

公共方法

publicObjectgetChild(int groupPosition, int childPosition)

public long getChildId (int groupPosition, int childPosition)

(译者注:获取与在给定组给予孩子相关的数据。)

publicView getChildView (int groupPosition, int childPosition, boolean isLastChild,ViewconvertView,ViewGroupparent)

(译者注:获取子项)

public int getChildrenCount (int groupPosition)

(译者注:返回在指定Group的Child数目。)

publicObject getGroup (int groupPosition)

public int getGroupCount ()

(译者注:返回Group的总数目。)

public long getGroupId (int groupPosition)

publicView getGroupView (int groupPosition, boolean isExpanded,ViewconvertView,ViewGroupparent)

(译者注:获取父项)

public boolean hasStableIds ()

public boolean isChildSelectable (int groupPosition, int childPosition)

(译者注:是否让child获得焦点)

publicView newChildView (boolean isLastChild,ViewGroupparent)

新建一个子元素View。

参数

isLastChild   该child是否是组中的最后一个元素

parent       新的View的最终父亲。

返回

新的子元素View对象。

publicViewnewGroupView(boolean isExpanded,ViewGroupparent)

新建一个组元素View。

参数

isExpanded 该组元素是否当前处于折叠状态

parent   新View的最终父亲。

返回

新的组元素View对象。

补充

文章精选

ExpandableListActivity和SimpleExpandableListAdapter的使用方法

Expandable lists[blogspot]

示例代码:

List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();

List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>();

for (int i = 0; i < 20; i++) {

Map<String, String> curGroupMap = new HashMap<String, String>();

groupData.add(curGroupMap);

curGroupMap.put(NAME, "Group " + i);

curGroupMap.put(IS_EVEN, (i % 2 == 0) ? "This group is even" : "This group is odd");

List<Map<String, String>> children = new ArrayList<Map<String, String>>();

for (int j = 0; j < 15; j++) {

Map<String, String> curChildMap = new HashMap<String, String>();

children.add(curChildMap);

curChildMap.put(NAME, "Child " + j);

curChildMap.put(IS_EVEN, (j % 2 == 0) ? "This child is even" : "This child is odd");

}

childData.add(children);

}

// Set up our adapter

mAdapter = new SimpleExpandableListAdapter(

this,

groupData,

android.R.layout.simple_expandable_list_item_1,

new String[] { NAMEIS_EVEN },

newint[] { android.R.id.text1, android.R.id.text2 },

childData,

android.R.layout.simple_expandable_list_item_2,

new String[] { NAMEIS_EVEN },

newint[] { android.R.id.text1, android.R.id.text2 }

);

Android常用Adapter用例(二)相关推荐

  1. Android常用Adapter用例

    以下文章原创版权全部归 博客园 娄立军 所有,转载请详细标明原创作者及出处,以示尊重!! 作者:娄立军 出处:http://www.cnblogs.com/loulijun/ 作者的Android杂谈 ...

  2. Android 常用API自查表(二)

    Android 常用API自查表 IQOO Neo6 日志授权 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 移除和拷贝assets中的文件 清空任务栈 Create ...

  3. Android的Adapter用法总结

    Android之Adapter用法总结 1.Adapter概念   定义为将一个类的接口变换成客户端所期待的一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作.   在androi ...

  4. Android常用开源项目

    Android开源项目第一篇--个性化控件(View)篇   包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Progre ...

  5. Android常用面试题大全

    1.TCP和UDP之间的区别?什么是URL ? TCP被称为用户数据报协议;UDP被称为信息传输控制协议;URL被称为统一资源定位符,通过统一资源定位符可以唯一定位到互联网上的某个资源(图片.视频.音 ...

  6. Android常用酷炫控件(开源项目)github地址汇总

    转载一个很牛逼的控件收集帖... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.Gri ...

  7. Android 常用设计模式(一)

    由于项目变更的频繁性,作为一名程序员,我们需要掌握设计模式的必要性,就不言而喻~~,下面就是一些我自己学习的设计模式总结. 接下来,主要是针对几个比较常用模式进行讲解,主要是以下几种: 观察者模式 适 ...

  8. Android之Adapter用法总结

    本文转自http://kb.cnblogs.com/a/2328334/,转载请注明原出处. Android之Adapter用法总结 作者:Devin Zhang  来源:博客园  发布时间:2012 ...

  9. android中Adapter适配器的讲解

    android中Adapter适配器的讲解 Adapter(适配器的讲解) 适配器就我自己来看,我觉得这是一个非常重要的知识点,Adapter是用来帮助填出数据的中间桥梁,简单点说吧:将各种数据以合适 ...

最新文章

  1. tensorflow随笔-非线性回归
  2. jvm性能调优工具之 jmap使用详解
  3. android 组件化_你曾遇到的某大厂奇葩问题:Android组件化开发,组件间的Activity页面跳转...
  4. 2021年三月上旬推荐阅读文章
  5. 数字测图原理与方法的实习日志_数字测图原理与方法实习与习题.doc
  6. linux中的环境变量作用
  7. python语言能做什么-python语言可以干什么
  8. weblogic部署静态资源文件html,weblogic部署静态html
  9. 飞飞影视php 漏洞,飞飞影视SQL injection exploit[转]
  10. CCF系列题解--2015年3月第三题 节日
  11. matlab符号值,matlab 符号积分和数值积分
  12. 校园电动车管理与充电指引—微信小程序
  13. Docker——安装和启动
  14. 小程序智能聊天机器人(二)
  15. 用python编程、假设一年期定期利率_Python习题选编
  16. 从零搭建FPGA区块链运算机——ASIC、GPU、FPGA对比
  17. 三星数据系统(西安)20190222
  18. 华为OD机试 - 数组拼接
  19. 原来还有这样的记词方法_Java版记不规则动词_博主推荐
  20. 一篇文章搞定Java处理Excel表格的各种疑难杂症

热门文章

  1. 创建线程方式2-runnable接口的实现类
  2. 过去一年,被我们“高估”的技术清单
  3. 眼坐标系和世界坐标系的相互转换
  4. CCF认证历年试题解(python版本 + c语言版+c++版本)
  5. 《Scala机器学习》一一1.1 Scala入门
  6. eclipse启动优化文章集合
  7. shell命令行快捷键
  8. 【Computer Organization笔记11】多周期CPU
  9. 每个人都应该了解的HTTPS知识
  10. python pathos_python运行多线程库pathos时,pymongo递归深度溢出