Android ListView开发使用

listView 的使用

1 使用步骤

  1. 获取ListView 控件对象
  2. 准备数据源
  3. 准备适配器
  4. 适配器关联到ListView

    数据源可以从服务器 网络下载而来,也可以从数据空中读取。!!!数组中的数据无法直接传递给LsitView,需要结组适配器完成 Adapter1

2 适配器

2.1 适配器Adapter

适配器是数据和视图的桥梁,负责把数据的内容显示hi到视图定义的外观布局中。

2.2 适配器的种类

名称 说明
ArrayAdapter 简单的文字列表
SimpleAdapter 简单的图文混搭列表
SimpleCursorAdapter 数据源是数据库的列表
自定义Adapter 最灵活的适配器适用于绝大多数情况

以上适配器都继承自BaseAdapter

2.3 ArrayAdapter 实现文字列表

  1. 获取控件
  2. 建立String[] 数组的数据源
  3. new一个ArrayAdapter 适配器
  4. 适配器关联到ListView

2.4 使用SimpleAdapter 实现图文混编列表

适配器工作原理](https://img-blog.csdnimg.cn/20200520210536302.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyODE1MDQ5,size_16,color_FFFFFF,t_70)

  1. 布局文件

    - 添加ListView标签
    - 编写行布局 item.xml
        * 配置对于id
  2. Activity

    • 获取listview对象

      -  准备数据源List< Map >
          +  将复合数据存储到简直对数据中
      • 配置适配器

        • 将适配器关联到ListView

2.5 自定义Adapter

自定义Adapter工作原理
实现自定义Adapter的步骤

    1. 继承BaseAdapter
    2. 实现getView 方法
    3. 关联ListView
    • 自定义Adapter

      • 添加数据集合
      • 添加反射器LayoutInflater
      • 实现构造器和
      • 实现getView 和setter方法
    • 在Activity中调用MyAdapter

      • 准备适配器
      • 将adapter关联到listview

    3 ListView 常用事件

    名称 说明 true/false 说明
    onItemClick Item点击事件 true/fasle 消化事件,事前不会继续传递/不消化事件,事件会继续传递下去
    onItemLongClick Item 长按事件 true/fasle 消化事件,事前不会继续传递/不消化事件,事件会继续传递下去

    如果希望长按事件后,不再触发点击事件,则应该将返回值为true

    4 Selector 背景选择器

    selector背景选择器

    • 是drawable文件夹下的一种资源文件.xml

      + 创建资源文件
      + 编写Selector 文件:通常状态/点击状态
      + 设置button的背景树型为Selector 背景选择器的资源的引用
    • 在其中可以定义多种不同状态下的控件背景
    • 常用的状态如下表
    名称 说明
    android:state_pressed 控件是否被按压
    android:state_focused 控件是否获得焦点
    android:state_enabled 控件是否可用
    android:state_selected 控件是否被选中

    注意

    getview方法的每次调用都需要执行两个耗时操作

    • inflate 方法耗时 convertView解决。 一级优化
    • findeViewById 方法耗时 ViewHoulder 解决。 二级优化

    ConvertView 的原理和使用

    在这里插入图片描述

    ViewHolder 的原理和使用

    在这里插入图片描述

    ————————————————————————
    [1] 《 第一行代码--Android(第二版) 》郭霖
    [2] <从零开始的安卓入门课程> 孙老师非要尴尬


    1. 1

    你可能感兴趣的:(java,android,android-studio,程序员)