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. mybatis 学习五 二级缓存不推荐使用

    mybatis 二级缓存不推荐使用 一 mybatis的缓存使用. 大体就是首先根据你的sqlid,参数的信息自己算出一个key值,然后你查询的时候,会先把这个key值去缓存中找看有没有value,如 ...

  2. leetcode395

    分治法. public class Solution { private int LongestSubstringSub(string s, int k, int start, int end) { ...

  3. leetcode67

    public class Solution { public string AddBinary(string a, string b) { var list = new List<string& ...

  4. GitHub中README.md文件的编辑和使用

    最近对它的README.md文件颇为感兴趣.便写下这贴,帮助更多的还不会编写README文件的同学们. README文件后缀名为md.md是markdown的缩写,markdown是一种编辑博客的语言 ...

  5. maven工程 ,通过maven更新后,jre恢复到1.5的解决方法

    在maven setting.xml profiles节点下加入 <profile> <id>jdk-1.8</id> <activation> < ...

  6. 77. Combinations (Recursion)

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...

  7. Docker使用link建立容器之间的连接

    我们在使用Docker的时候,经常可能需要连接到其他的容器,比如:web服务需要连接数据库.按照往常的做法,需要先启动数据库的容器,映射出端口来,然后配置好客户端的容器,再去访问.其实针对这种场景,D ...

  8. What's App has the Qt?

    收集了我看到的使用Qt开发的应用程序或者含有Qt库的应用程序 CNTV CNTV, 一个中央电视台的视频直播软件, 从下面卸载后的残余目录树,可以看到,存在部分库使用的就是Qt的.下面的目录树,已经删 ...

  9. [DT] 数据结构术语中英文对照

    数据结构术语中英文对照 数据 Data 数据元素 Data element 数据项 Data item 数据结构 Data structure 逻辑结构 Logical structure 数据类型 ...

  10. gatttool的使用

    1.使能hci接口 # hciconfig hci0 up 2.使用hcitool搜索BLE设备 # hcitool lescan LE Scan ...D0:39:72:BE:D2:26 (unkn ...