重拾Android的快乐-ListView组件
说明 ListView 组件用来以垂直滚动的显示View集合,配置方式如下: <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ListView 实现动态数据展示 ListView 是一个 AdapterView,它不关心要显示的数据,只负责展示 ListView 显示的数据是交由 ListAdapter 进行处理,ListAdapter 本质是一个 Adapter,它是ListView和展示数据的桥,这样就可以实现内容与数据的分离 BaseAdapter 抽象基类,自定义扩展都会继承这个类 ArrayAdapter 支持泛型操作,实现最简单的展示一行文字 SimpleAdapter 具有良好扩展性的Adapter,支持Map类型的List数据(List<Map>),支持自定义多种效果 重点关注一下 Adapter 的 getView 方法,它提供获取显示数据的View,这个View可以直接创建或者从XML layout中创建 实战 实现一个最简单的列表 最终效果 核心代码 ListView 容器layout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/listView" /> </LinearLayout> 文件名为: list_item1 在线性布局下定义一个 ListView , 设置id为 listView MainActivity 代码 private fun testListView1() { setContentView(R.layout.list_item1) val list = listOf("111", "222", "333", "444", "555") val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, list) val listView = findViewById<ListView>(R.id.listView) listView.adapter = adapter } 主要关注创建 ArrayAdapter 的代码,创建时需要的参数: ...