ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。
先说说ListView的实现:
1. 准备ListView要显示的数据 ;
2. 使用 一维或多维 动态数组 保存数据;
2. 构建适配器 , 简单地来说, 适配器就是 Item数组 , 动态数组 有多少元素就生成多少个Item;
3. 把 适配器 添加到ListView,并显示出来。
下面看看准备实现 ListView 的效果图。
万事开头难,实现上面的例子,假设已经具备成功运行HelloWord 的基矗
既然是要学习,首先想到的是学习文档,经过对比,发现官方文档写的很有水平,粗略的先看下文档,准备动手实战。
学习文档: http://developer.android.com/resources/tutorials/views/hello-listview.html (英文)
其实文档已经写的非常清楚,只要安装说明一步一步的调试,肯定可以出结果。 由于本人是初学者,需要自己动手体验一下。
第一步 ) 创建一个 HelloListView 工程。
第二步)在HelloListView工程的res/layout/ 目录下创建一个 list_item.xml
<xml version = "1.0" encoding = "utf-8" ?>
< TextView xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:padding = "10dp"
android:textSize = "16sp" >
</ TextView >
第三步) 根据教材指南编写 HelloListView.java, 原教材有详细的介绍,下面的代码是根据教程进行组装的.
package net.simpleframework;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class HelloListView extends ListActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setListAdapter( new ArrayAdapter<String>( this , R.layout.list_item, COUNTRIES));
ListView lv = getListView();
lv.setTextFilterEnabled( true );
lv.setOnItemClickListener( new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),Toast.LENGTH_SHORT).show();
}
});
}
static final String[] COUNTRIES = new String[] {
"SimpleFramework" , "Simple" , "Portal" , "ajax" ,
"workflow" , "咨询" , "培训" , "项目" , "外包" , "组件"
};
}
需要注意的地方:
HelloListView继承的 ListActivity,这点对于有SimpleFramework 基础的用户非常容易理解,因为Simple的每个组件都需要
继承自己的父类,Android 组件使用原理也是一样的。
本例实践的环境为Android 2.3.