2.1.2 设置ListView显示的内容

在定义了数组资源之后,在图1所示的布局文件中,为ListView添加“entries”属性,该属性的作用是指定ListView的内容,如图6所示。

android item布局 listview 安卓studio布局listview_Adapter

图6 ListView的entries属性

其中,entries属性的值“@array/array_yang”即为图5中定义的字符串数组资源。此时,程序运行的效果如图7所示。

android item布局 listview 安卓studio布局listview_setAdapter_02

图7 程序运行效果

2.2 适配器(Adapter)设置ListView显示内容

适配器(Adapter),可以看作是ListView与数据之间的桥梁,将适配器与数据绑定,之后再将适配器与ListView绑定后,ListView就可以访问代码中的数据了。

2.2.1 适配器与数组绑定

通过图8所示的代码,将适配器与数据绑定。

android item布局 listview 安卓studio布局listview_ListView_03

图8 适配器与数组绑定代码

其中,data是字符串数组;图8①中的ArrayAdaper是适配器(Adapter)的字类,叫做“数组适配器”,因为data是字符串数组,因此要使用与其对应的数组适配器,图8①中的“<String>”指定了数组中元素的类型。通过new关键字调用ArrayAdapter类的构造方法创建该类的对象adapter。ArrayAdapter类的构造方法的第一个参数表示使用该适配器的上下文,如图8②所示;第二个参数是一个布局文件的资源ID,该布局文件用来指定ListView的每一项视图的外观,图8③所示的“android.R.layout.simple_list_item_1”是已经定义好的布局文件的资源ID;

图8③所示的data即为与adapter绑定的数据。通过以上代码,适配器adaper就与数据data绑定在一起了。

相关链接1:android.R.layout.simple_list_item_1,Android Studio预先定义了多个用于表示ListView的项外观的布局文件,android.R.layout.simple_list_item_1是其中的一个布局文件的ID,表示该ListView的项中只有一个文本。

2.2.2 适配器与ListView绑定

在将适配器与数据绑定之后,接下来将适配器与ListView绑定,如图9所示。

android item布局 listview 安卓studio布局listview_ArrayAdapter_04

图9 适配器与ListView绑定

其中,lv是ListView类的对象,通过findViewById()方法与图6中布局文件创建的ListView关联,之后通过lv调用ListView类的成员方法setAdapter()将适配器adapter与ListView关联。

接下来在图6中的布局文件中删除ListView控件的entries属性,运行程序得到如图10所示的效果。

android item布局 listview 安卓studio布局listview_setAdapter_05

图10 程序运行效果