在移动应用开发中, 因为屏幕尺寸的限制和操作模式的特点,导致 ListView 成为一个非常常用的控件,当然它也是一个非常灵活的控件。本文展示 ListView 最基本的用法
放置 ListView 控件到屏幕中
在示例中,我们简单的拖动一个 ListView 并放置到一个空白的 Activity 中,然后做一些简单的约束设置,让它占满整个 Activity 的界面。
1 |
|
初始化数据和 Adapter
因为 ListView 非常灵活,可以用来显示不同类型的数据,可以为不同类型的数据定制不同的显示外观,所以需要使用 Adapter 来桥接数据和显示样式。在本示例中,我们简单的显示一个字符串数组,定义如下:
1 | private String[] data = { "张三", "李四", "王二麻子" }; |
然后我们使用一个系统内置的 ArrayAdapter 类型来桥接数据和显示样式,显示样式简单的用系统内置的 simple_list_item_1, 代码如下:
1 | ArrayAdapter<String> adapter = new ArrayAdapter<String>( |
ArrayAdapter 的参数中,第一个是当前的 Activity, 第二参数是显示样式,第三个就是我们要显示的数据。
然后获取屏幕上的 ListView, 调用 setAdapter 方法设置刚才初始化的 adapter 实例即可
1 | ListView listView = (ListView)findViewById(R.id.todoList); |
响应用户选中事件
为了响应用户单击列表中某一行的事件,需要新建一个 OnItemClickListener 的实例,并赋值给对应的 ListView。如下的代码
1 | listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { |
完整的类代码如下:
1 | public class TodoListActivity extends AppCompatActivity { |
使用 ButterKnife
也可以使用 butterknife 来绑定ListView。(如果不熟悉 butterknife 的用法,可以参考 在Android中使用注解绑定控件和事件 )
对应的代码如下:
1 | public class TodoListActivity extends AppCompatActivity { |