歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android ListView 列表控件的簡單使用

ListView 列表是我們經常會使用的控件, 如果想要自定義裡面的顯示的話是挺麻煩的, 需要新建XML、Class SimpleAdapter這兩個文件, 較為麻煩。 如果我們只是想顯示兩、三行文字在上面, 卻又不想那麼麻煩呢? 那我們只要新建一個XML就夠了。

這裡以顯示一個ListView項裡三個TextView為例。

首先我們要創建一個XML文件, 這個XML文件是用來作為單個ListView項布局用的。

list_row.xml

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <RelativeLayout xmlns:Android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:background="#ffffff"  
  6.     >  
  7.   
  8.     <TextView  
  9.         android:id="@+id/textTo"  
  10.         android:layout_width="wrap_content"  
  11.         android:layout_height="wrap_content"  
  12.         android:textSize="16dip"  
  13.         android:textColor="#333333"  
  14.         />      
  15.           
  16.     <TextView  
  17.         android:id="@+id/textOwn"  
  18.         android:layout_width="wrap_content"  
  19.         android:layout_height="wrap_content"  
  20.         android:layout_below="@id/textTo"  
  21.         android:textSize="12dip"  
  22.         android:textColor="#999999"  
  23.         />  
  24.       
  25.     <TextView  
  26.         android:id="@+id/textState"  
  27.         android:layout_width="wrap_content"  
  28.         android:layout_height="wrap_content"  
  29.         android:layout_alignParentRight="true"  
  30.         android:textSize="14dip"  
  31.         android:textColor="#999999"  
  32.         />  
  33. </RelativeLayout>  

第一個TextView是標題、第二個是內容、第三個是狀態

接下來我們需要在主XML布局文件裡面放置一個ListView控件

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical"  
  6.     android:background="#ffffff"  
  7.      >  
  8.   
  9.     <ListView   
  10.         android:id="@+id/list"  
  11.         android:layout_width="fill_parent"  
  12.         android:layout_height="fill_parent"  
  13.         android:background="#ffffff"  
  14.         ></ListView>  
  15.   
  16. </LinearLayout>  

然後,我們要在主Activity裡面聲明三個成員變量

  1. private List<Map<String, Object>> mList;      
  2. private ListView mListView;  
  3. private SimpleAdapter mListAdapter;   

mList是用來存放要顯示的數據

SimpleAdapter是ListView 數據的一個容器, 用來存放顯示在ListView上的數據。 對 SimpleAdapter 的數據操作會直接影響到ListView的顯示。

然後, 我們來給mList添加一些要顯示的數據

  1. mList  = new ArrayList<Map<String,Object>>();  
  1. Map<String, Object> map = new HashMap<String, Object>();  
  2. map.put("First""這是標題");  
  3. map.put("Next",  "這是內容");  
  4. map.put("State""狀態");  
  5.   
  6. mList.add(map);  

這樣就添加了一條數據, 如果要添加多條就重復再添加。

接下來我們把數據放入到SimpleAdapter/ListView中

  1. mListAdapter = null;  
  2. mListAdapter = new SimpleAdapter(this, mList, R.layout.list_row,  
  3. new String[]{"First""Next""State"},  
  4. new int[]{R.id.textOwn, R.id.textTo, R.id.textState});  
  5.   
  6. mListView.setAdapter(mListAdapter);  

new SimpleAdapter的參數: 父指針、ArrayList的數據、 布局文件、 要顯示的數據的標簽、顯示在哪些控件上。  後面兩個參數順序一定要對應。

最後, ListView載入了SimpleAdapter就可以了。

當然,我們直接操作mList也會影響到ListView的數據。 在修改了mList的數據後,調用SimpleAdapter的notifyDataSetChanged()方法後就可以了。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved