天天看點

一起Talk Android吧(第七十三回:Android中UI控件之ListView基礎)

各位看官們,大家好,上一回中咱們說的是Android中UI控件之總結的例子,這一回咱們說的例子是UI控件之

ListView

。閑話休提,言歸正轉。讓我們一起Talk Android吧!

看官們,我們在前面介紹了常用的控件,不過他們都是單一的控件,本章回中我們将介紹一種常用的複合控件,說它是複合控件的原因在于,它可以把其它的控件包含進來和自己一起使用。那麼到底是什麼控件呢?它就是

ListView

控件。

ListView

是一種用來顯示大量資料的元件,當一個螢幕顯示不下所有内容時,滑動螢幕就可以繼續顯示其它内容。接下來我們通過代碼結合文本的方式來示範如何使用這種元件。

  • 1.在布局中添加

    ListView

    。通常是在Activity或者Fragment的布局檔案中添加。
<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顯示出來。下面是程式的運作結果,請大家參考:

一起Talk Android吧(第七十三回:Android中UI控件之ListView基礎)

各位看官,關于Android中UI控件之

ListView

基礎的例子咱們就介紹到這裡,欲知後面還有什麼例子,且聽下回分解!