各位看官們,大家好,上一回中咱們說的是Android中UI控件之總結的例子,這一回咱們說的例子是UI控件之
ListView
。閑話休提,言歸正轉。讓我們一起Talk Android吧!
看官們,我們在前面介紹了常用的控件,不過他們都是單一的控件,本章回中我們将介紹一種常用的複合控件,說它是複合控件的原因在于,它可以把其它的控件包含進來和自己一起使用。那麼到底是什麼控件呢?它就是
ListView
控件。
ListView
是一種用來顯示大量資料的元件,當一個螢幕顯示不下所有内容時,滑動螢幕就可以繼續顯示其它内容。接下來我們通過代碼結合文本的方式來示範如何使用這種元件。
- 1.在布局中添加
。通常是在Activity或者Fragment的布局檔案中添加。ListView
<ListView
android:id="@+id/list_view" //控件id和長寬屬性
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
- 2.在代碼中擷取布局檔案中的ListView。通常位于Activity或者Fragment的onCreate方法中。
private mListView = (ListView)findViewById(R.id.list_view);
-
3.在代碼中為ListView添加需要顯示的資料。
資料不能直接添加到ListView中,而是通過擴充卡來進行該操作。是以首先要建立擴充卡,并且把ListView和擴充卡關聯起來。擴充卡才是存放資料的容器,它存放的資料也就是ListView中顯示的資料。下面是具體的代碼:
private String[] data = {"Mon","Tues","Wed","Thur","Fri","Sat","Sun"}; //擴充卡中存放的資料
private ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>
(Activity2.this,android.R.layout.simple_list_item_1,data);
mListView.setAdapter(arrayAdapter); //把擴充卡和ListView關聯起來
在上面的代碼中,建立的是String類型的擴充卡。其實擴充卡使用了泛型,泛型的類型可以自己來指定,我們為了友善才使用了String類型。建立擴充卡時使用了擴充卡的構造方法,該方法中第一個參數是ListView所在布局的context,第二個參數是ListView的子布局,也就是ListView中每一個内容的布局,這裡使用了系統提供的布局,也可以自己定義一個布局,第三個參數是String類型的數組,數組中為具體的資料。當然了這個資料有多種組織方式,常見的是數組或者List.
- 4.給ListView添加事件監聽器,當ListView中的某個内容被點選時就會觸發該監聽器,下面是具體的代碼。
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String item = data[i];
Toast.makeText(Activity2.this,"Todat is "+item,Toast.LENGTH_LONG).show();
}
});
在上面的代碼中,我們重寫了
onItemClick
方法,該方法是回調函數,觸發監聽器後就會調用它。該方法的第三個參數表示ListView中被點選的内容在ListView中的位置,在本例子中也就是數組中第幾個元素。我們取出了數組中的元素并且通過Toast顯示出來。下面是程式的運作結果,請大家參考:
各位看官,關于Android中UI控件之
ListView
基礎的例子咱們就介紹到這裡,欲知後面還有什麼例子,且聽下回分解!