Android学习指南之十二:列表组件ListView

       Android学习指南上一节中讲的是ProgressBar、SeekBar和RatingBar,本节主要讲讲列表组件ListView。

       列表组件是开发中经常用到组件,该组件在使用时需要为它提供适配器,由适配器提供来确定显示样式和显示数据。

       下面给大家一个简单的例子:

       首先新建一个项目Lesson8_ListViewTest,Activity name是MainListViewTest 。

       MainListViewTest.java的代码如下:

Java代码
  1. package android.basic.lesson8;   
  2.   
  3. import android.app.Activity;   
  4. import android.os.Bundle;   
  5. import android.view.View;   
  6. import android.widget.AdapterView;   
  7. import android.widget.AdapterView.OnItemClickListener;   
  8. import android.widget.AdapterView.OnItemLongClickListener;   
  9. import android.widget.ArrayAdapter;   
  10. import android.widget.ListView;   
  11. import android.widget.TextView;   
  12. import android.widget.Toast;   
  13.   
  14. public class MainListViewTest extends Activity {   
  15.   
  16.     /** Called when the activity is first created. */  
  17.         @Override  
  18.     public void onCreate(Bundle savedInstanceState) {   
  19.         super.onCreate(savedInstanceState);   
  20.         setContentView(R.layout.main);   
  21.   
  22.         //找到ListView   
  23.         ListView lv= (ListView)findViewById(R.id.ListView01);   
  24.   
  25.         //定义数组   
  26.         String[] data ={   
  27.                         "Android开发基础篇 第一讲",   
  28.                         "Android开发基础篇 第二讲",   
  29.                         "Android开发基础篇 第三讲",   
  30.                         "Android开发基础篇 第四讲",   
  31.                         "Android开发基础篇 第五讲",   
  32.                         "Android开发基础篇 第六讲",   
  33.                         "Android开发基础篇 第七讲",   
  34.                         "Android开发基础篇 第八讲",   
  35.                         "Android开发基础篇 第九讲"  
  36.                         };   
  37.   
  38.         //为ListView提供数组适配器   
  39.         lv.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,data));   
  40.   
  41.         //为ListView设置列表项点击监听器   
  42.                 lv.setOnItemClickListener(new OnItemClickListener() {   
  43.   
  44.                         @Override  
  45.                         public void onItemClick(AdapterView<?> parent, View view,   
  46.                                         int position, long id) {   
  47.                                 Toast.makeText(getApplicationContext(),   
  48.                                                 "您点击的是:"+((TextView) view).getText(), Toast.LENGTH_SHORT).show();   
  49.                         }   
  50.                 });   
  51.   
  52.                 //为ListView设置长按监听器   
  53.                 lv.setOnItemLongClickListener(new OnItemLongClickListener(){   
  54.   
  55.                         @Override  
  56.                         public boolean onItemLongClick(AdapterView<?> parent, View view,   
  57.                                         int position, long id) {   
  58.                                 Toast.makeText(getApplicationContext(),   
  59.                                                 "您长按的是:"+((TextView) view).getText(), Toast.LENGTH_SHORT).show();   
  60.                                 return false;   
  61.                         }   
  62.                 });   
  63.     }   
  64. }  

       其中:

       1、android.R.layout.simple_list_item_1 是一个Android系统内置的ListView布局方式;我们可以自定义ListView的布局方式。

       2、OnItemClickListener是个接口,用new创建一个接口的做法是不是有点怪?实际上这里是建立了一个匿名类,来满足setOnItemClickListener()方法的参数需求。

       3、Toast.makeText().show() 的写法大家可以记一下,可以创造出一个气泡提示效果。

       main.xml的代码如下:

XML/HTML代码
  1. < ?xml version="1.0" encoding="utf-8"?>     
  2.   
  3. <LINEARLAYOUT android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">     
  4.     <TEXTVIEW android:layout_height="wrap_content" android:layout_width="fill_parent" android:textSize="25sp" android:gravity="center" android:id="@+id/TextView01" android:text="Android开发基础篇">     
  5.     </TEXTVIEW>     
  6.  <LISTVIEW android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/ListView01">     
  7.  </LISTVIEW>     
  8. </LINEARLAYOUT>   

       运行程序我们看一下效果图如下:

Android学习指南之十二:列表组件ListView

       点击其中一个列表项的时候会触发Item的onClick事件,弹出一个气泡提示框。在一个选项上长时间按着也会触发LongClick事件,弹出另一个气泡提示框。

列表组件ListView气泡提示框

       上面的例子用到了系统自带的android.R.layout.simple_list_item_1布局,使用的是在Java代码中的数组做数据源;我们可以再做个例子使用XML做数据源,再使用一下系统自带的android.R.layout.simple_list_item_2布局,看看他们的表现有什么不同。

       ListView组件熟悉了以后,可以实现很多种界面效果,而且实现起来简单方便。


android开发学习网 » Android学习指南之十二:列表组件ListView