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 姚先進 閱讀(206) 評論(0)  編輯  收藏

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


          網站導航:
           
           
          主站蜘蛛池模板: 德州市| 大关县| 永胜县| 探索| 德格县| 怀安县| 衡东县| 阿克| 邓州市| 平塘县| 白水县| 辽源市| 卓资县| 新河县| 丹东市| 肥乡县| 勃利县| 青川县| 花垣县| 大丰市| 平阳县| 昔阳县| 甘洛县| 宜昌市| 乌兰浩特市| 慈溪市| 堆龙德庆县| 新丰县| 珲春市| 昌宁县| 邳州市| 西平县| 黔南| 肥城市| 新源县| 姜堰市| 信阳市| 武宣县| 隆德县| 大理市| 沐川县|