1.定义

    数据适配器是AdapterView视图(如ListView - 列表视图控件、Gallery - 缩略图浏览器控件、GridView - 网格控件、Spinner - 下拉列表控件、AutoCompleteTextView - 自动提示文本框、ExpandableListView - 支持展开/收缩功能的列表控件等)与数据之间的桥梁,用来处理数据并将数据绑定到AdapterView上。

2.作用

   数据适配器是连接数据源和视图界面的桥梁。

3.分类

    包括ArrayAdapter(数组适配器)以及SimpleAdapter(简单适配器)。其中:

  1. ArrayAdapter用于绑定格式相对单一的数据,数据源主要是集合或者数组;
  2. SimpleAdapter用于绑定格式复杂的数据,数据源只能是泛型的集合;

4.实现

  1. 新建适配器;
  2. 添加数据源到适配器;
  3. 视图加载适配器;

5.案例

(1)具体用到的类:

  1. ArrayAdapter(上下文,当前ListView加载的每一个列表所对应的布局文件,数据源)
  2. SimpleAdapter(context,data,resource,from,to)其中,context:上下文,data数据源(List<? extends Map<String,?>> data)一个Map所组成的List集合) 每一个Map都会去对应ListView列表中的一行 每一个Map(键-值对)中的键必须包含所有在from中所指定的键,resource:列表项的布局文件ID,from:Map中的键名(String[]格式),to:绑定数据视图中的ID,与from成对应关系(int[]格式);

(2)代码实例:

  • ArrayAdapter
     ListView listView;
ArrayAdapter arrayAdapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_violet);
listView = (ListView) findViewById(R.id.listView);
String[] data={"苹果","香蕉","桃子","西瓜"};
arrayAdapter=new ArrayAdapter(this,R.layout.abc_simple_dropdown_hint,data);//上下文,当前ListView加载的每一个列表所对应的布局文件,数据源)
listView.setAdapter(arrayAdapter);
}
  • SimpleAdapter
     ListView listView;
SimpleAdapter simpleAdapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_violet);
listView = (ListView) findViewById(R.id.listView);
List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
String[] persons = {"张老师", "陈老师", "李老师", "黄老师"};
String[] phoneNums = {"18706218201", "18706214521", "13908761231", "18512390812"};
for (int i = 0; i < persons.length; i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("username", persons[i]);
map.put("phoneNum", phoneNums[i]);
//插入图片
map.put("photo",R.drawable.cc);
data.add(map);
}
//(context,data,resource,from,to)
simpleAdapter = new SimpleAdapter(this, data, R.layout.list_item, new String[]{"username","photo", "phoneNum"}, new int[]{R.id.username,R.id.photo, R.id.phoneNum});
listView.setAdapter(simpleAdapter);
}

Android学习之Adapter(数据适配器)的更多相关文章

  1. ListView和Adapter数据适配器的简单介绍

    ListView 显示大量相同格式数据 常用属性: listSelector            listView每项在选中.按下等不同状态时的Drawable divider            ...

  2. Android学习笔记-Adapter基础讲解

    本节引言 从本节开始我们要讲的UI控件都是跟Adapter(适配器)打交道的,了解并学会使用这个Adapter很重要, Adapter是用来帮助填充数据的中间桥梁,简单点说就是:将各种数据以合适的形式 ...

  3. Android必学之数据适配器BaseAdapter

    什么是数据适配器? 下图展示了数据源.适配器.ListView等数据展示控件之间的关系.我们知道,数据源是各种各样的,而ListView所展示数据的格式则是有一定的要求的.数据适配器正是建立了数据源与 ...

  4. Android 学习笔记之数据存储SharePreferenced+File

    学习内容: Android的数据存储.... 1.使用SharedPreferences来保存和读取数据... 2.使用File中的I/O来完成对数据的存储和读取...   一个应用程序,经常需要与用 ...

  5. Android学习----自定义Adapter实现ListView

    前言: 对于ListView而言,自定义的Adapter对于显示复杂的界面有很大的灵活性 .使用自定义的Adapter需要继承BaseAdapter,然后重写getCount(),getView(), ...

  6. Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)

    知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...

  7. Android学习笔记_36_ListView数据异步加载与AsyncTask

    一.界面布局文件: 1.加入sdcard写入和网络权限: <!-- 访问internet权限 --> <uses-permission android:name="andr ...

  8. Android学习笔记-保存数据的实现方法2-SharedPreferences

    Android下,数据的保存,前面介绍过了,把数据保存到内存以及SD卡上,这次我们就介绍一下,更为常用的采用SharedPreferences的方式来保存数据, 1,得到SharedPreferenc ...

  9. Android学习笔记-保存数据的实现方法1

    Android开发中,有时候我们需要对信息进行保存,那么今天就来介绍一下,保存文件到内存,以及SD卡的一些操作,及方法,供参考. 第一种,保存数据到内存中: //java开发中的保存数据的方式 pub ...

随机推荐

  1. 517. Super Washing Machines

    ▶ 超级洗碗机.给定一个有 n 元素的整数数组,我们把 “将指定位置上元素的值减 1,同时其左侧或者右侧相邻元素的值加 1” 称为一次操作,每个回合内,可以选定任意 1 至 n 个位置进行独立的操作, ...

  2. vue轮播(完整详细版)

    轮播组件vue <swiper :options="swiperOption" class='swiper-box'>     <swiper-slide v-f ...

  3. 点赞功能实现 $(tag).css('属性', '样式')

    1. 创建标签 document.createElement() 2.$(tag).css('属性', 样式) 赋予标签属性样式 3.设置定时器 改变位置 大小 <!DOCTYPE html&g ...

  4. iscroll源码学习(1)

    iscroll是移端端开发的两大利器之一(另一个是fastclick),为了将它整合的avalon,需要对它认真学习一番.下面是我的笔记. 第一天看的是它的工具类util.js //用于做函数节流 v ...

  5. 归纳整理Linux下C语言常用的库函数----文件操作

    在没有IDE的时候,记住一些常用的库函数的函数名.参数.基本用法及注意事项是很有必要的. 参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类: 1. 内存及字符串控制及操作 2. ...

  6. 新手C#异常的学习2018.08.07

    异常是在程序执行期间出现的问题.C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零. class Program { static void Main(string[] args) ...

  7. 解题报告-683. K Empty Slots

    There is a garden with N slots. In each slot, there is a flower. The N flowers will bloom one by one ...

  8. sqlserver2014新特性

    1.SQL Server 2014新特性探秘(1)-内存数据库 在传统的数据库表中,由于磁盘的物理结构限制,表和索引的结构为B-Tree,这就使得该类索引在大并发的OLTP环境中显得非常乏力,虽然有很 ...

  9. Luogu 4512 【模板】多项式除法

    高级操作,感觉非常神仙. 题目中的字母太难懂了,重新定义一下. $$A(x) = B(x) * C(x) + D(x)$$ 其中,$A(x)$的次数是$n$,$B(x)$的次数是$m$,$A, B$都 ...

  10. kaggle-泰坦尼克号Titanic-1

    大家都熟悉的『Jack and Rose』的故事,豪华游艇倒了,大家都惊恐逃生,可是救生艇的数量有限,无法人人都有,副船长发话了『lady and kid first!』,所以是否获救其实并非随机,而 ...