1. 一、 ArrayAdapter
  2.  
  3.   ListView listView = (ListView) findViewById(R.id.list_view);//ListView的参数为id
  4.  
  5.   listView.setAdapter(new ArrayAdapter<Person>(this, android.R.layout.simple_list_item_1, list));//对象是Person,第一个参数是context,第二个是指代要显示的模版,最后一个是要显示的数据,list为person类的ArrayList集合。
  6.  
  7. 二、 BaseAdapter
  8.  
  9.   、一行一行的显示对象
  10.  
  11.   ①、定义MyAdapter来继承BaseAdapter
  12.  
  13.    class MyAdapter extends BaseAdapter {
  14.  
  15.       @Override
  16.       public int getCount() {
  17.         return list.size();//list为person对象的List
  18.       }
  19.  
  20.       @Override
  21.       public Object getItem(int position) {
  22.         return null;
  23.       }
  24.  
  25.       @Override
  26.       public long getItemId(int position) {
  27.         return ;
  28.       }
  29.  
  30.       /**
  31.       * 缓存的是被遮住的那一行
  32.       */
  33.       @Override
  34.       public View getView(int position, View convertView, ViewGroup parent) {
  35.  
  36.         TextView textview = null;
  37.  
  38.         if (null != convertView) {
  39.         textview = (TextView) convertView;
  40.         } else {
  41.         textview = new TextView(MainActivity.this);
  42.         }
  43.  
  44.         textview.setText(list.get(position).toString());
  45.  
  46.         return textview;
  47.       }
  48.  
  49.    }
  50.  
  51.    ②、设置适配器
  52.  
  53.     ListView listview = (ListView) findViewById(R.id.list_view);
  54.  
  55.      listview.setAdapter(new MyAdapter());
  56.  
  57.   、自定义一个xml,加入到ListView中再一行一行显示
  58.  
  59.     ①、定义自己的要显示的一行的内容布局文件----list_item.xml
  60.  
  61.     ②、定义MyAdapter来继承BaseAdapter    
  62.  
  63.     class MyAdapter extends BaseAdapter
  64.     {
  65.  
  66.       @Override
  67.       public int getCount() {
  68.         return list.size();
  69.       }
  70.  
  71.       @Override
  72.       public Object getItem(int position) {
  73.         return null;
  74.       }
  75.  
  76.       @Override
  77.       public long getItemId(int position) {
  78.         return ;
  79.       }
  80.  
  81.       @Override
  82.       public View getView(int position, View convertView, ViewGroup parent) {
  83.         //布局转换器 作用就是讲一个布局转换为一个对象
  84.         LayoutInflater flater = MainActivity1.this.getLayoutInflater();
  85.         View view = flater.inflate(R.layout.list_item, null); //真正将一个布局文件转为一个对象
  86.         //在一个特定的对象上去查找一个ID所对应的组件
  87.         TextView text_name = (TextView) view.findViewById(R.id.list_view_name);
  88.         TextView text_age = (TextView) view.findViewById(R.id.list_view_age);
  89.         Person person = list.get(position);
  90.         text_name.setText(person.getName());
  91.         text_age.setText(String.valueOf(person.getAge()));
  92.         return view;
  93.       }
  94.     }
  95.  
  96.   ③、设置适配器
  97.  
  98.      ListView listview = (ListView) findViewById(R.id.list_view);
  99.  
  100.      listview.setAdapter(new MyAdapter());
  101.  
  102. 三、SimpleAdapter,显示的一行内容里面包含多行数据
  103.  
  104.   ①、定义自己的要显示的一行中要显示的多行的布局文件----list_item.xml
  105.  
  106.   ②、设置适配器(代码的意思是要显示的多行xml中是一行name,一行age);  
  107.  
  108.     ListView listview = (ListView) findViewById(R.id.list_view);
  109.  
  110.     List<Map<String, String>> data = new ArrayList<Map<String, String>>();
  111.  
  112.     Map<String, String> info = new HashMap<String, String>();
  113.     info.put("name", "zs");
  114.     info.put("age", "");
  115.  
  116.     data.add(info);
  117.  
  118.     info = new HashMap<String, String>();
  119.     info.put("name", "wangwu");
  120.     info.put("age", "");
  121.     data.add(info);
  122.  
  123.     info = new HashMap<String, String>();
  124.     info.put("name", "wangwu");
  125.     info.put("age", "");
  126.     data.add(info);
  127.  
  128.     info = new HashMap<String, String>();
  129.     info.put("name", "wangwu");
  130.     info.put("age", "");
  131.     data.add(info);
  132.  
  133.     info = new HashMap<String, String>();
  134.     info.put("name", "wangwu");
  135.     info.put("age", "");
  136.     data.add(info);
  137.  
  138.     info = new HashMap<String, String>();
  139.     info.put("name", "wangwu");
  140.     info.put("age", "");
  141.     data.add(info);
  142.  
  143.     SimpleAdapter simple = new SimpleAdapter(this, data,
  144.     R.layout.list_item, new String[] { "name", "age" }, new int[] {
  145.     R.id.list_view_name, R.id.list_view_age });
  146.  
  147.     listview.setAdapter(simple);

listview的两种适配器的更多相关文章

  1. (转载) Android-Spinner的使用以及两种适配器

    目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选      程序员8月书讯      项目管理+代码托管+文档协作,开发更流畅 Android-Spinner的使用以及两种适配器 201 ...

  2. ListView+CheckBox两种解决方式及原因分析

    近期在用ListView+CheckBox搞一个item选中的项目,我将CheckBox的focus设置为false,另我大喜的是,CheckBox居然能够选中(窃喜中),这么简单就搞定了,由于数据量 ...

  3. 【Android自学日记】两种适配器的使用

    ArrayAdapter适配器: (1)用于显示基本的文字内容 (2)基本使用过程:新建适配器---创建或加载数据源---适配器加载数据源---视图加载适配器 ArrayAdapter(上下文,当前L ...

  4. Android ListView两种长按弹出菜单方式

    转自:http://www.cnblogs.com/yejiurui/p/3247527.html package com.wyl.download_demo; import java.util.Ar ...

  5. Android中通过数组资源文件xml与适配器两种方式给ListView列表视图设置数据源

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  6. 一个ListView怎么展示两种样式

    private class MyBaseMsgAdapter extends BaseAdapter { //获取数据适配器中条目类型的总数,修改成两种(纯文本,输入+文字) @Override pu ...

  7. 几种适配器&观察者&ListView之间的那点事

    android中的几种适配器&观察者&ListView 1.我们知道Android中的Adapter类是处于ListView和数据源之间的数据总线,它负责为ListView提供数据. ...

  8. 我的Android进阶之旅------>Android Listview跳到指定条目位置的两种实现方法

    前言 今天实现ListView跳转到第一个条目位置时,使用smoothScrollToPosition(int position)方法跳转实现了,但是交互说不需要这样的动画效果,需要直接跳转到第一项, ...

  9. Android一个ListView列表之中插入两种不同的数据

    http://www.cnblogs.com/roucheng/ Android一个ListView列表之中插入两种不同的数据 代码如下: public class ViewHolder{ Butto ...

随机推荐

  1. Python3基础 str split 用指定的字符将字符串分割

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  2. linux交叉编译gcc4.8.3

    1.环境: Ubuntu 16.04 2.获取 wget mirrors.ustc.edu.cn/gnu/gcc/gcc-4.8.3/gcc-4.8.3.tar.bz2 3.解压 tar xvf gc ...

  3. luogu P4396 [AHOI2013]作业

    目录 题目 思路 错误&&傻叉 代码 题目 luogu 思路 每次都是插入比之前所有数字大的数,所以之前的答案就不会改变 用fhq-treap求出原序列,然后用树状数组依次算出每个值得 ...

  4. C#入门经典 第六章 委托

    C#入门经典 第六章 6.6 委托的声明非常类似于函数,但不带函数体,且要使用delegate关键字. 委托的声明指定了一个返回类型和一个参数列表. 在定义了委托后,就可以声明该委托类型的变量. 接着 ...

  5. dp暑假专题 训练记录

    A 回文串的最小划分 题意:给出长度不超过1000的字符串,把它分割成若干个回文字串,求能分成的最少字串数. #include <iostream> #include <cstdio ...

  6. DPDK无法分出大页面:EAL: No free hugepages reported in hugepages-2048kB 解决方法

    参考: [dpdk-users] Fw: DPDK Error --> EAL: No free hugepages reported in hugepages-2048kB DPDK无法分出连 ...

  7. C# 实现简单的 Heap 堆(二叉堆)

    如题,C#  实现简单的二叉堆的 Push() 和 Pop(), 如有不足欢迎指正. 另外,在C#中使用 Heap 的相似功能可以考虑使用:Priority Queues,SortedDictiona ...

  8. NOI 8467 鸣人的影分身

    http://noi.openjudge.cn/ch0206/8467/ 描述 在火影忍者的世界里,令敌人捉摸不透是非常关键的.我们的主角漩涡鸣人所拥有的一个招数——多重影分身之术——就是一个很好的例 ...

  9. .net 与 java 开发微服务对比

    java+spring boot+maven对比.net 优势: 1. spring 自身带的ioc 比.net 更简单易用. 2. spring actuator的健康检测等运行时状态查看功能很赞. ...

  10. Robot framework(RF)学习基础

    1.框架特点 2.安装 3.基本内容 RF框架是通用的测试框架,一直由诺西网络维护. 易于使用 采用表格法 可以使用关键字驱动,数据驱动和行为驱动开发完成.(keyword-driven,data-d ...