Adapter常用实现类:
1、ArrayAdapter:简单,易用的Adapter,通用用于将数组或List集合的多个值包装成多个列表项
2、SimpleAdapter:并不简单,功能强大的Adapter,可用于将List集合的多个对象包装成多个列表项。
3、SimpleCursorAdapter:与SimpleAdapter基本相似,只是用于包装Cursor提供的数据。
4、BaseAdapter:通常用于被扩展。

实例:使用ArrayAdapter创建ListView

    <ListView
        android:id="@+id/list1"android:layout_width="match_parent"android:layout_height="wrap_content">        </ListView>
 ListView list1 = (ListView) findViewById(R.id.list1);String[] arr1 = {"神灵武士","斧王","宙斯","白牛","蓝胖"};//将数组包装成ArrayAdapterArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,arr1);//为ListView设置Adapterlist1.setAdapter(adapter1);

实例:使用SimpleAdapter创建ListView

activity_main.xml

    <ListView
        android:id="@+id/mylist"android:layout_width="match_parent"android:layout_height="wrap_content"></ListView>

simple_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"><!-- 定义一个ImageView,用于作为列表项的一部分。 --><ImageView android:id="@+id/header"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="10dp"/><LinearLayout
        android:orientation="vertical"android:layout_width="match_parent"android:layout_height="wrap_content"><!-- 定义一个TextView,用于作为列表项的一部分。 --><TextView android:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20dp"android:textColor="#f0f"android:paddingLeft="10dp"/><!-- 定义一个TextView,用于作为列表项的一部分。 --><TextView android:id="@+id/desc"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="14dp"android:paddingLeft="10dp"/></LinearLayout>
</LinearLayout>

MainActivity.java

 private String[] names = new String[]{"虎头","弄玉","李清照","李白"};private String[] descs = new String[]{"可爱的女孩","一个擅长音乐的女孩","一个擅长文学的女性","浪漫主义诗人"};private int[] imageIds = new int[]{R.drawable.tiger,R.drawable.nongyu,R.drawable.qingzhao,R.drawable.libai};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//创建一个List集合,集合中的元素是MapList<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();for (int i=0;i<names.length;i++){Map<String,Object> listItem = new HashMap<String,Object>();listItem.put("personName",names[i]);listItem.put("Header",imageIds[i]);listItem.put("desc",descs[i]);listItems.add(listItem);}//创建一个SimpleAdapter**SimpleAdapter simpleAdapter = new SimpleAdapter(this,listItems,R.layout.simple_item,new String[]{"personName","Header","desc"},new int[]{R.id.name,R.id.header,R.id.desc});**ListView listView = (ListView) findViewById(R.id.mylist);listView.setAdapter(simpleAdapter);

上面程序的关键在于创建一SimpleAdapter,它需要5个参数,其中后面四个十分关键。

绑定单击事件

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {System.out.println(names[position] +"被单击了!");}});

绑定选中事件

 listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {System.out.println(names[position]+"被选中了!");}@Overridepublic void onNothingSelected(AdapterView<?> parent) {}});

2.5.2 Adapter接口及实现类相关推荐

  1. UI组件之AdapterView及其子类关系,Adapter接口及其实现类关系

    AdapterView本身是一个抽象基类,它派生的的子类在用法上十分相似.AdapterView直接派生的三个子类:AbsListView,AbsSpinner,AdapterViewAnimator ...

  2. Android Adapter接口的实现类总结

    一.Adapter的理解 (一)基本概念     首先,我们先要了解什么是Adapter,其实我们一般都可以从翻译中知道一点,这个单词的翻译是"适配器".也就是说,我们可以通过Ad ...

  3. Adapter(适配器)--类对象结构型模式

    Adapter(适配器)–类对象结构型模式 一.意图 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本接口不兼容而不能一起工作的那些类可以一起工作. 二.动机 1.在软件系统中, ...

  4. 设计模式七:Adapter(适配器)——类对象结构型模式

    结构型模式: 结构型模式设计到如何组织类和对象以获得更大的结构. 结构型类模式: 采用继承机制来组合接口或实现.简单的例子是采用多重继承,这一模式尤其有助于多个独立开发的类库协同工作. 结构型对象模式 ...

  5. java面向对象 接口和实现类_类实现java面向对象上:接口

    最近应用开发的过程中出现了一个小问题,顺便记录一下原因和方法--类实现 10.接口: 接口的设计:        1.应用接口处理多继承:        2.应用接口为外部类添加功能:        ...

  6. 深入struts2.0(七)--ActionInvocation接口以及3DefaultActionInvocation类

    1.1.1       ActionInvocation类 ActionInvocation定义为一个接口.主要作用是表现action的运行状态.它拥有拦截器和action的实例.通过重复的运行inv ...

  7. Jfinal 2.1 集成 Guice,实现注解功能, 加入Service接口和实现类,直接晒代码

    2019独角兽企业重金招聘Python工程师标准>>> [1].第一步,Maven引入Google的Guice的jar包: <dependency><groupId ...

  8. yii2.0框架中自定义接口,实现类的多继承

    一.前言 最近有个需求,比如有A,B,C,D四个文件,原来的逻辑是,A继承B,C继承D.后来由于A和C的逻辑太像,既然如此的话,为什么不把A,C写一起呢,第一是方便维护,第二也是减少无用的代码,说干就 ...

  9. 接口有class类对象吗

    接口有class类对象 public interface Test{} Class c=Test.class; 拓展: 哪些类型可以有Class对象

最新文章

  1. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)
  2. 我使用Python和Django在自己的网站上建立了一个会员专区。 这是我学到的东西。
  3. 虚拟dom_通过编写简易虚拟DOM,来学习虚拟DOM 的原理
  4. selenium编写脚本_Selenium脚本编写技巧和窍门
  5. 不同林间域账号密码迁移
  6. 再说一次,别去外包!
  7. 说出来你可能不信,内核这家伙在内存的使用上给自己开了个小灶!
  8. python源码剖析_Python源码剖析-深度探索动态语言核心技术.陈儒.PDF版www.atcpu.com...
  9. 示坡线高程判断_地理示坡线
  10. Android Adapter详解
  11. 节假日读取接口_2018年节假日API接口,直接计算好的
  12. 抖音上坤之大强之作是什么意思
  13. 使用nodejs机器学习进行app流量判别
  14. kaldi 学习笔记-三音素训练1(Decision Tree)
  15. 隐马尔可夫模型(一)概念
  16. 计算机一级电子表格TF函数,TFG1000系列DDS函数信号发生器基本操作
  17. 【新塘N76E003】NU-LINK脱机烧写
  18. 如何让计算机显示器满屏,电脑显示器满屏条纹的解决方法
  19. 个人开发者一分钟接入微信支付宝支付
  20. windows资源保护无法启动修复服务器,win10专业版sfc/scannow修复系统提示windows资源保护没法启动修复服务?...

热门文章

  1. 润乾报表打印html,润乾报表纯文本打印的实现
  2. CSS3利用text-shadow属性实现多种效果文字特效
  3. L2-1 点赞狂魔 (25分)
  4. python表示分数_python分数怎么表示
  5. PHP的HTTP客户端:Guzzle的简单使用
  6. vue数据双向绑定原理
  7. win 10 开机后内存占用率过高
  8. 红米k40s root玩机笔记
  9. 深度学习 Day 3——解决深度学习环境配置问题
  10. 大学学计算机学费多少,大学四年一共要花多少学费,父母:十万应该差不多