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

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

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

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


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

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


代码:

(1) MainActivity.java


package com.fergusworkroom.demo_listview;import android.os.Bundle;import android.app.Activity;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends Activity implements OnItemClickListener, OnItemSelectedListener{private static String[] data = new String[]{"大连","沈阳","北京","哈尔滨","杭州","呼和浩特","齐齐哈尔","城市,是以非农业产业和非农业人口集聚形成的较大居民点(包括按国家行政建制设立的市、镇)。一般而言,人口较稠密的地区称为城市(city),一般包括了住宅区、工业区和商业区并且具备行政管辖功能。"};private TextView selectedItemInfo;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                ListView commonListView = (ListView)findViewById(R.id.commonListView);        selectedItemInfo = (TextView)findViewById(R.id.selectedItemInfo);                // (1) Adapter  <--> Data        ArrayAdapter<String> aaData = new ArrayAdapter<String>(this,        android.R.layout.simple_list_item_1, data);                // (2) ListView <--> Adapter        commonListView.setAdapter(aaData);                // (3) 设置相关响应函数        commonListView.setOnItemClickListener(this);        commonListView.setOnItemSelectedListener(this);    }public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubselectedItemInfo.setText("Item selected: " + arg2 + ", " + arg3);}public void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stubselectedItemInfo.setText("Nothing selected");}public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {// TODO Auto-generated method stubselectedItemInfo.setText("Item clicked: " + arg2 + ", " + arg3);}}



(2) activity_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">    <TextView         android:id="@+id/selectedItemInfo"        android:layout_width="fill_parent"        android:layout_height="50dp"        android:text="所选信息" />    <ListView        android:id="@+id/commonListView"        android:layout_width="fill_parent"        android:layout_height="wrap_content" /></LinearLayout>



参考文献:

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

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. Python技巧匿名函数、回调函数和高阶函数
  4. python list.sort()根据多个关键字排序的方法实现
  5. 说说 mvc 模式的原理,它在 android 中的运用。
  6. android与html5的交互——数据库操作,UI操作,以及html5的localStor
  7. Android(安卓)Activity之间的跳转与传值(回传)
  8. [置顶] android adapter
  9. Android中使用Notification

随机推荐

  1. Android版本和API对应关系
  2. Android Reverse Engineering 101 – Par
  3. Android Bluetooth Architecture
  4. Android应用程序剖析
  5. Android - Custom Components
  6. 相对布局控制控件居右显示
  7. android-环境
  8. android 自定义TextView实现秒级数字时钟
  9. Android之自定义适配器
  10. android 生成密钥 签名