内容正文:
第5章 Android 中常用的 UI 组件
Android Studio 移动应用开发基础(第 2 版)
目录
5.1 使用基于 XML 的布局
5.2 Android 中的基本组件
5.3 同步练习一 .
5.4 Android 中的容器组件
5.5 同步练习二
5.6 AdapterView 组件
5.7 同步练习三
5.8 Android 中的其他常用组件
5.9 同步练习四
5.6 AdapterView 组件
在 Android 应用程序开发中,AdapterView 组件是一类常用且非常重要的组件。
以列表的形式显示信息的 ListView 组件、以网格形式浏览照片缩略图的 GridView 组件、以下拉列表形式显示可选项的 Spinner 组件等都是 AdapterView 组件的子组件。
5.6.1 AdapterView 组件入门
通过一个案例讲解 AdapterView 组件的编程模式;
使用 ListView 组件以列表的形式显示 Android 平台上已经安装的所有应用程序信息,这些信息包括应用程序的图标、名称和入口 Activity的类名,当显示的内容超出物理屏幕可用区域时,可以进行滚动;
屏幕中显示的部分是一个 ListView 组件,小框框住的部分是列表中的一个列表项,在应用程序中使用ListView 组件显示信息,必须完成以下的工作。
(1)在界面布局中包含一个 ListView 组件。
(2)对列表中的列表项进行布局。
(3)设计一个实现了 Adapter 接口的类,用于为 ListView组件提供需要显
示的数据。
需要对 Adapter 接口有一个深入的理解;
5.6.2 Adapter 接口
AdapterView 组件的子组件,这些组件只负责显示数据,这些要显示的数据必须通过Adapter 接口的实现类进行管理;
ListView 组件主要负责显示数据,并且对滚动、点击列表项等事件进行处理;
要显示的数据由 Adapter 接口提供。其实,Adapter 接口不仅要提供数据,还要对显示在 ListView 组件中的数据进行布局封装,使其形成完整的组件。
AdapterView 组件显示数据的处理逻辑如下:
(1)当 AdapterView 组件要显示一项数据时,它首先会调用 Adapter 接口的 getView()方法,并且传递
一个要显示数据的位置参数。
(2)Adapter 接口根据这个位置参数从 Data 中获取指定的数据,并且根据 R.layout. childView.xml 布局
文件的布局样式将数据填入样式布局,然后将构建好的 View 返回给AdapterView 组件。
(3)AdapterView 组件将返回的 View 作为子 View 显示在 View 组件中。
Adapter 接口中的常用方法及其含义:
Android SDK 提供了几个实现 Adapter 接口的基础类,它们分别是 BaseAdapter 类、ArrayAdapter 类、impleAdapter 类、SimpleCursorAdapter类。
5.6.3 ListView 组件
ListView 组件以垂直布局方式显示数据列表,当要显示的数据较多,总高度超过屏幕高度时,能以垂直滚动的方式显示其他数据;
下面来看一个案例:ListView 组件以列表的形式显示书的名称;
新建一个名为 Ch0509 的 Android 应用程序工程;
在界面布局中包含一个 ListView 组件,程序主界面布局文件是 activity_main.xml,修改该文件中的代码:
对列表中的列表项进行布局:右击工程的 res/layout 目录,在弹出的快捷菜单中选择 New→Layout Resource File 命令,如图 5-15 所示。在弹出的对话框的 File name 文本框中输入“list_item.xml”:
设计一个实现了 Adapter 接口的类,用于为 ListView 组件提供要显示的数据:在 Ch0509 应用程序工程中,新建一个名为 MyAdapter 的 Java 类:
修改 MainActivity.java 文件中的代码:
使 ListView 组件显示的信息更漂亮:使用 ListView 组件显示书的名称,这种效果太单调了。下面修改 Ch0509 应用程序,使ListView 组件中的每一行都显示书的名称和封面图片。
需要修改列表项布局文件 res/layout/list_item.xml 和MyAdapter.java