ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。
创建ListView有两种方式:
1.在定制UI组件的xml文件中直接添加ListView进行创建;
2.创建一个类(Activity)让其继承ListActivity;
使用ListView的难点在于如何为ListView设置其要现实的内容,自己在搜素一些资源的基础上总结了一下,(注:作者也是初学者,有些说法难免有不足,甚至错误之处,还望指正),一下创建ListView的方式都是按照上面提到的第一种方式。
一. 通过ListView的entries属性和ArrayAdapter来在ListView中显示字符数组内容
ListView的entries属性指定一个数组资源,Android将根据该数组资源来生成ListView要现实的内容。
本程序通过设置ListView的entries属性和ArrayAdapter来在两个ListView中显示字符数组内容。
界面布局的xml代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<!-- 直接使用数组资源给出列表选项 -->
<ListView
android:id="@+id/list1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/books"
android:divider="@drawable/red"
android:headerDividersEnabled="false"
/>
<!-- 使用ArrayAdapter提供列表项的ListView -->
<ListView
android:id="@+id/list2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="@drawable/green"
/>
</LinearLayout>
数组资源array.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string-array name="books">
<item>C++讲义</item>
<item>Java讲义</item>
<item>XML讲义</item>
<item>C语言</item>
<item>VHDL讲义</item>
</string-array>
</resources>
Activity代码如下
package com.example.arrayadapterlist;
import android.os.Bundle;
public class ArrayAdapterList extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_array_adapter_list);
ListView list2=(ListView)findViewById(R.id.list2);
//定义一个数组
String[] arr={"数学" , "语文" , "化学"};
//将数组包装到ArrayAdapter
ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>
(this, android.R.layout.simple_list_item_single_choice, arr);
//为ListView设置Adapter
list2.setAdapter(arrayAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_array_adapter_list, menu);
return true;
}
}
运行结果如下:
至于ListView要显示的每个列表的外观形式可通过android.R.layout.simple_list_item_single_choice这项设置 。此程序在第二个ListView中选择的是每个列表的外观形式是:每个列表项都是带多选按钮的文本。ps:貌似一篇文章把所有的写不完,暂且分开写吧。