在 Android 控件演示 - ListView 中,演示了 ListView 最简单的用法,本文演示在 ListView 中用自定义样式显示数据。
定义要显示的数据
在Java中,习惯用 POJO 的方式来表达数据,在本例中,我们也定义一个类来表示数据:
1 | public class Todo { |
定义显示样式
在 ListView 中,如果使用的是自定的数据类型,也需要自定义对应的 Adapter。
新建一个 layout 文件,用于描述 Toast 将要如何显示。 选择 app, 右键选择 New -> XML -> Layout XML File。
根据提示为文件命名并选择布局管理器。 示例中文件命名为: list_todo_layout.xml。让后简单的加一个 TextView , 最后的文件内容为:
1 |
|
定义 Adapter
现在有了数据类型,也有了显示样式,怎么样把它们组合起来让 ListView 显示呢? 这个时候就需要用到自定义的 Adapter 了。
先看代码:
1 | public class TodoAdapter extends ArrayAdapter { |
在构造函数中,我们将 resourceId 作为参数传递给 Adapter 类, 从后面的代码我们可以知道,这个 resourceId 其实就是显示样式文件对应的id。在 getView 方法中,载入屏幕样式文件并作为一个View对象,在从 View 中获取 TextView, 最后把数据赋值给 TextView。
显示 ListView
为了显示自定义的 ListView, 我们使用在 Android 控件演示 - ListView 中定义好的 Activity, 修改 Activity 类的代码如下即可:
1 | public class TodoListActivity extends AppCompatActivity { |