数据适配器(2017年12月11日)

2017.12.11

1Android提供了哪些数据适配器?

使用数据列表(ListviewGridViewRecyclerView),关键点还是数据适配器。数据适配器解决了将数据如何显示到条目布局上这个问题。

ArrayAdapter示例中,我们发现只能将一列数据贴到item布局上,且item布局只有一个控件。实际开发中,允许item布局非常复杂,可以将多个不同的数据贴到item布局中多个控件上,如何处理?

假设不仅仅有姓名,还有电话这2个信息,如何处理?发现ArrayAdapter传入数据只能传入一个数组,数组内都是一个作用的数据(例如只能是姓名或者只能是电话,不能是2个都在)。

有哪些可以使用的数据适配器?

ArrayAdapter:只能处理一列数据

SimpleAdapter:可以处理多列数据

BaseAdapter:可以处理多列数据,且还可以对数据以及条目进行更复杂的操作,例如选中变红。

2ArrayAdapter如何使用?

它继承了BaseAdapter,是对BaseAdapter的进一步封装。为开发简化操作步骤。

常用:public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)这个构造函数

context:表示上下文

resource:条目布局

textViewResourceId:条目中那个textView

objects:泛型数组,T在实例化时指定

3SimpleAdapter如何使用?

它继承了BaseAdapter,是对BaseAdapter的进一步封装。为开发简化操作步骤。

允许多列数据,也就是给条目填充数据时允许多列对应多个控件,控件不限于某一种。

使用:public SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)构造函数创建adapter实例

context:表示上下文

data:表示向条目中填充的数据,允许多列。关于data数据的解释:

 

 

 

resource:表示条目布局

from:表示什么数据

to:表示什么控件

fromto表示将哪列数据贴到哪个控件。

【案例】创建SimpleAdapter的数据。将一个二维表数据存入到List集合中。

 

 

 

 

【案例】创建SimpleAdapter

项目结构:

 

 

 

activity_main.xml

 

 

 

item.xml

 

 

 

styles.xml

 

 

 

MainActivity.java

 

 

 

 

 

 

效果:

 

 

4、使用BaseAdapter,创建一个类继承BaseAdapter

需要实现的方法有:

int getCount():表示返回数据有多少条。

Object getItem(int position):表示返回当前条目

long getItemId(int position):表示返回当前条目的id

View getView(int position,View convertView ,ViewGroup parent):表示返回条目布局

注意:

这些方法称为回调方法,调用交给了Android开发框架,不是由自身代码调用;

方法中的参数,叫回调参数,参数的实参也不是由当前代码提供,交给了android开发框架来提供。

【案例】使用BaseAdapter

 

 

 

item.xml:

 

 

 

其他xml文件参考上例。

MyBaseAdapter.java

 

 

 

 

 

 

MainActivity.java

 

 

 

效果:

 

 

 

【作业】

修改课堂案例,实现奇偶行背景颜色不一样。

 

posted @ 2021-03-25 14:05  三生石头花  阅读(47)  评论(0编辑  收藏  举报