您的位置:首页 > 产品设计 > UI/UE

Android的UI组件之ListView(一)

2012-08-07 17:24 162 查看
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:貌似一篇文章把所有的写不完,暂且分开写吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: