[Android] ListView (普通列表控件) 的基本使用方法

来源:互联网 发布:网站源码分享 编辑:程序博客网 时间:2024/04/29 18:13

  在Android中,ListView控件用于以列表的形式显示数据,采用MVC模式将前端显示与后端数据进行分离。如下图所示,ListView控件并不直接使用数据,而是间接通过Adapter对象。

所以,ListView控件的使用,一般需要进行两步绑定:

        · 数据和Adapter的绑定:如下图中(1)

        · Adapter和ListView的绑定:如下图中(2)


        代码中,ArrayAdapter的构造方法需要三个参数,本例中第一个参数使用当前Activity的对象实例,第二个参数指定布局文件的资源ID,第三个参数指定列表项中的数据。

        使用ListView,可根据需要实现相关接口,常用的有OnItemClickListener(当列表项被点击时触发)和OnItemSelectListener(当列表项被选中时触发)。


代码:

(1) MainActivity.java


[java] view plaincopy
  1. package com.fergusworkroom.demo_listview;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.view.View;  
  6. import android.widget.AdapterView;  
  7. import android.widget.AdapterView.OnItemClickListener;  
  8. import android.widget.AdapterView.OnItemSelectedListener;  
  9. import android.widget.ArrayAdapter;  
  10. import android.widget.ListView;  
  11. import android.widget.TextView;  
  12.   
  13. public class MainActivity extends Activity implements OnItemClickListener, OnItemSelectedListener{  
  14.       
  15.     private static String[] data = new String[]{  
  16.         "大连",  
  17.         "沈阳",  
  18.         "北京",  
  19.         "哈尔滨",  
  20.         "杭州",  
  21.         "呼和浩特",  
  22.         "齐齐哈尔",  
  23.         "城市,是以非农业产业和非农业人口集聚形成的较大居民点(包括按国家行政建制设立的市、镇)。一般而言,人口较稠密的地区称为城市(city),一般包括了住宅区、工业区和商业区并且具备行政管辖功能。"  
  24.     };  
  25.   
  26.     private TextView selectedItemInfo;  
  27.     @Override  
  28.     public void onCreate(Bundle savedInstanceState) {  
  29.         super.onCreate(savedInstanceState);  
  30.         setContentView(R.layout.activity_main);  
  31.           
  32.         ListView commonListView = (ListView)findViewById(R.id.commonListView);  
  33.         selectedItemInfo = (TextView)findViewById(R.id.selectedItemInfo);  
  34.           
  35.         // (1) Adapter  <--> Data  
  36.         ArrayAdapter<String> aaData = new ArrayAdapter<String>(this,  
  37.                 android.R.layout.simple_list_item_1, data);  
  38.           
  39.         // (2) ListView <--> Adapter  
  40.         commonListView.setAdapter(aaData);  
  41.           
  42.         // (3) 设置相关响应函数  
  43.         commonListView.setOnItemClickListener(this);  
  44.         commonListView.setOnItemSelectedListener(this);  
  45.     }  
  46.   
  47.     public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,  
  48.             long arg3) {  
  49.         // TODO Auto-generated method stub  
  50.         selectedItemInfo.setText("Item selected: " + arg2 + ", " + arg3);  
  51.     }  
  52.   
  53.     public void onNothingSelected(AdapterView<?> arg0) {  
  54.         // TODO Auto-generated method stub  
  55.         selectedItemInfo.setText("Nothing selected");  
  56.     }  
  57.   
  58.     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {  
  59.         // TODO Auto-generated method stub  
  60.         selectedItemInfo.setText("Item clicked: " + arg2 + ", " + arg3);  
  61.     }  
  62. }  



(2) activity_main.xml


[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical" android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent">  
  5.     <TextView   
  6.         android:id="@+id/selectedItemInfo"  
  7.         android:layout_width="fill_parent"  
  8.         android:layout_height="50dp"  
  9.         android:text="所选信息" />  
  10.     <ListView  
  11.         android:id="@+id/commonListView"  
  12.         android:layout_width="fill_parent"  
  13.         android:layout_height="wrap_content" />  
  14. </LinearLayout>  



参考文献:

[1] 李宁. Android开发权威指南[M].北京:人民邮电出版社.

0 0
原创粉丝点击