Android開發系列(十四):ListView用法、對ListView監聽的三種方法以及ListView中Adapter的使用方法
一、ArrayAdapter的介紹以及ListView的用法:
Adapter是資料和視圖之間的橋樑,資料在adapter中做處理,然後顯示到視圖上面。就是用來綁定資料用的。
用一個小例子來介紹一下:
public class FriendActivity extends Activity {private ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);//我們設定一個List集合,然後向裡邊添加幾條資料List ls = new ArrayList();ls.add(張三);ls.add(李四);ls.add(王五);//擷取xml檔案中listView控制項listView = (ListView)findViewById(R.id.ayyay_list_list);//然後為listView控制項調用setAdapter方法,讓資料顯示在介面上。listView.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,ls));}
使用步驟。
(1)定義一個數組來存放ListView中item的內容(如以上代碼中的 ls 集合)。
(2)通過實現ArrayAdapter的建構函式來建立一個ArrayAdapter的對象。
(3)通過ListView的setAdapter()方法綁定ArrayAdapter。
其中第二步有必要說一下的是,ArrayAdapter有多個建構函式,例子中實現的是最常用的一種。
第一個參數為內容物件,直接可以用this來代替。
第二個參數為一個包含TextView,用來填充ListView的每一行的布局資源ID(在以上代碼中的:android.R.layout.simple_list_item_1是系統內建的格式,直接拿來調用了)。
第三個參數為ListView的內容。
二、對ListView對象進行監聽:
常用的對ListView對象監聽的有三個:
1.OnItemClickListener :監聽器在點擊該項目的子項時觸發
2.OnTouchListener:監聽器在觸碰到ListView時觸發
3.OnScrollListener:監聽器在ListView滾動時觸發
(1)、OnItemClickListener
public class FriendActivity extends Activity {private ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);//我們設定一個List集合,然後向裡邊添加幾條資料List ls = new ArrayList();ls.add(張三);ls.add(李四);ls.add(王五);//擷取xml檔案中listView控制項listView = (ListView)findViewById(R.id.ayyay_list_list);//然後為listView控制項調用setAdapter方法,讓資料顯示在介面上。listView.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,ls));//為listView對象進行監聽:當點擊子項目的時候觸發listView.setOnItemClickListener(new ItemClickEvent());}//繼承OnItemClickListener,當子項目被點擊的時候觸發private final class ItemClickEvent implements OnItemClickListener{@Override//這裡需要注意的是第三個參數arg2,這是代表單擊第幾個選項public void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) {//通過單擊事件,獲得單擊選項的內容String text = listView.getItemAtPosition(arg2)+;//通過吐絲對象顯示出來。Toast.makeText(getApplicationContext(), text, 1).show();}}}
可以看到,當單擊第二項李四,下邊會用吐絲對象顯示一個李四