該程序完成如下功能:
1 在ListView中顯示多個學生的名字。
2 點擊ListView中的條目,查詢並顯示該學生的年齡、性別、照片等信息。
本文要用到的相關圖片下載:
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2012年資料/1月/29日/Android開發應用實例:ListView的應用/
效果圖:
650) this.width=650;" height=120>
student.java
- package com.lingdududu.listview;
- public class Student {
- public String sname;
- public String ssex;
- public int sage;
- Student(String name,String sex,int age){
- sname=name;
- ssex=sex;
- sage=age;
- }
- void Stuedent(String name){
- sname=name;
- }
- public String getName(){
- return sname;
- }
- public String getSex(){
- return ssex;
- }
- public int getAge(){
- return sage;
- }
- public String toString (){
- return sname;
- }
- //這個方法返回學生的姓名,性別,年齡
- public String getStuIfo(){
- return ("姓名:"+sname+"\n性別:"+ssex+"\n年齡:"+sage);
- }
- }
ListViewActivity.java
- package com.lingdududu.listview;
- import java.util.ArrayList;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- 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;
- /*
- * @author lingdududu
- * 該程序的主要功能是點擊ListView的學生姓名,就能彈出對話框
- * 在對話框裡面顯示學生的詳細信息:圖片,姓名,性別,年齡
- */
- public class ListViewActivity extends Activity {
- private ListView lv;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //學生圖片的ID數組
- final int[] stu_pic = {
- R.drawable.pic1,
- R.drawable.pic2,
- R.drawable.pic3,
- R.drawable.pic4,
- R.drawable.pic5,
- R.drawable.pic6};
- final AlertDialog.Builder builder = new AlertDialog.Builder(this);
- lv=(ListView)findViewById(R.id.list);
- /*生成動態數組,加入數據*/
- final ArrayList<Student>students = new ArrayList<Student>();
- students.add(new Student("小張","女",21));
- students.add(new Student("小明","男",22));
- students.add(new Student("小王","男",23));
- students.add(new Student("小麗","女",21));
- students.add(new Student("小紅","女",22));
- students.add(new Student("小周","男",23));
- ArrayAdapter<Student> adapter = new ArrayAdapter<Student>
- (this,//布局文件
- android.R.layout.simple_list_item_1,//android.R.layout.simple_list_item_1,系統定義的布局文件
- students);//數據來源
- //為ListView設置適配器
- lv.setAdapter(adapter);
- lv.setOnItemClickListener(new OnItemClickListener() {
- //arg0 發生點擊動作的AdapterView
- //arg1 在AdapterView中被點擊的視圖(它是由adapter提供的一個視圖)
- //arg2 視圖在adapter中的位置
- //arg3 被點擊元素的行id
- public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
- long arg3){
- //將學生的詳細信息在對話框裡面顯示
- builder.setMessage(students.get(arg2).getStuIfo())
- //顯示學生的圖片
- .setIcon(stu_pic[arg2])
- .setTitle("你好,這是我的詳細信息!")
- .setPositiveButton("確定", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- }
- });
- //創建對話框
- AlertDialog ad = builder.create();
- //顯示對話框
- ad.show();
- }
- });
- }
- }
main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <ListView
- android:id="@+id/list"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- </LinearLayout>