1、Listview簡述

          A view that shows items in a vertically scrolling list. The items come from theListAdapter associated with this view.

          簡單來說就是,創建Listview,然后給數值就行了。

          而這些數值來源有三種方式:ArrayAdapter、SimpleAdapter、SimpleCursorAdapter


          第一種是最簡單的一種Adapter,是字符串數值,只能在ListView顯示出文本信息。

          第二種是一種自定義的數據來源,要自定義布局方式,可以放置圖片,按鈕,文本之類的。

          第三種數據來源于數據庫。


          本文為第一種方式,ArrayAdapter,其他兩項的方法都差不多,主要是adapter不同。


          2、使用ListView步驟

          首先創建Listview組件,然后調用Listview.ArrayAdapter()方法,設置Adapter。


          通過調用setOnItemClickListener()接口方法,設置“點擊”listview某一項的監聽事件。

          通過調用setOnItemLongClickListener()接口方法,設置“長按”listview某一項的監聽事件。


          需要說明的是,當設置匿名內部類new OnItemClickListener()時,eclipse不會自動載入復寫函數,要點擊左邊的錯誤提示,然后Add unimplemented methods,才能載入復寫函數onItemClick()。


          1. mylistview.setOnItemClickListener(new OnItemClickListener() {  
          2.   
          3.     @Override  
          4.     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {  
          5.         // TODO Auto-generated method stub  
          6.           
          7.     }  
          8. });  

          關于onItemClick方法,下面詳細說說。(以下是官方的說明,參數命名不同而已,類型都是一樣的。arg0=parent,arg1=view,arg2=position,arg3=id)

          public abstract void onItemClick(AdapterView<?> parent,View view, int position, long id)

          Callback method to be invoked when an item in this AdapterView has been clicked.

          Implementers can call getItemAtPosition(position) if they need to access the data associated with the selected item.

          //當點擊listview某一項時,這個回調方法就會被調用。

          Parameters
          parent The AdapterView where the click happened.
          view The view within the AdapterView that was clicked (this will be a view provided by the adapter)
          position The position of the view in the adapter.
          id The row id of the item that was clicked.


          主要說說最后三個參數,

          view——————是你點擊的Listview的某一項的內容,來源于adapter。如用((TextView)arg1).getText(),可以取出點擊的這一項的內容,轉為string類型。

          position————是adapter的某一項,如點擊了listview第2項,而第2項對應的是adapter的第2個數值,那此時position的值就為1了。

                                       如對應adapter的第3個數值,那此時position的值就為2了。

          id———————id的值為點擊了Listview的哪一項對應的數值,點擊了listview第2項,那id就等于1。

          注:這些數值都是從0開始的。

          1. /*author:conowen 
          2.  * date:2012.2.26 
          3.  */  
          4. package com.conowen.listview;  
          5.   
          6. import android.app.Activity;  
          7. import android.os.Bundle;  
          8. import android.view.View;  
          9. import android.widget.AdapterView;  
          10. import android.widget.AdapterView.OnItemClickListener;  
          11. import android.widget.AdapterView.OnItemLongClickListener;  
          12. import android.widget.ArrayAdapter;  
          13. import android.widget.ListView;  
          14. import android.widget.TextView;  
          15. import android.widget.Toast;  
          16.   
          17. public class ListviewActivity extends Activity {  
          18.     /** Called when the activity is first created. */  
          19.     @Override  
          20.     public void onCreate(Bundle savedInstanceState) {  
          21.         super.onCreate(savedInstanceState);  
          22.         setContentView(R.layout.main);  
          23.         ListView lv = (ListView) findViewById(R.id.lv);  
          24.         String[] data = { "windows", "linux", "ios", "android", "wp7",  
          25.                 "Symbian" };// 定義adapter  
          26.         lv.setAdapter(new ArrayAdapter<String>(this,// 把adapter綁定到listview里面  
          27.                 android.R.layout.simple_expandable_list_item_1, data));  
          28.         // 點擊事件  
          29.         lv.setOnItemClickListener(new OnItemClickListener() {  
          30.   
          31.             @Override  
          32.             public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  
          33.                     long arg3) {  
          34.                 // TODO Auto-generated method stub  
          35.                 Toast.makeText(ListviewActivity.this, "你點擊的是第" + arg3 + "項",  
          36.                         Toast.LENGTH_SHORT).show();  
          37.                 // 取出所點擊的那一項的id  
          38.   
          39.             }  
          40.   
          41.         });  
          42.         // 長按事件  
          43.         lv.setOnItemLongClickListener(new OnItemLongClickListener() {  
          44.   
          45.             @Override  
          46.             public boolean onItemLongClick(AdapterView<?> arg0, View arg1,  
          47.                     int arg2, long arg3) {  
          48.                 // TODO Auto-generated method stub  
          49.                 Toast.makeText(ListviewActivity.this,  
          50.                         ((TextView) arg1).getText(), Toast.LENGTH_LONG).show();  
          51.                 // 取出點擊listview某一項的內容  
          52.                 return false;  
          53.             }  
          54.   
          55.         });  
          56.     }  
          57. }  

          posted on 2013-04-09 21:49 姚先進 閱讀(203) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 长阳| 阳城县| 鸡东县| 湘乡市| 恩施市| 湟源县| 平原县| 宜宾市| 安多县| 定边县| 大埔区| 乌什县| 高台县| 旬阳县| 华宁县| 彭山县| 五莲县| 广丰县| 靖宇县| 连山| 察隅县| 平南县| 延庆县| 时尚| 新津县| 鄂伦春自治旗| 灵川县| 通化县| 宜都市| 高邑县| 沽源县| 金门县| 阆中市| 台中县| 洛宁县| 昌宁县| 左贡县| 越西县| 博白县| 沅江市| 大足县|