實作前應先瞭解清單元件與Adapter的關係,請參考文章:
實作清單式功能表
假設我們想要做一個清單式的功能表,讓使用者在Atm專案主畫面中顯示如下畫面:
先以字串陣列方式將功能名稱儲存在MainActivity中的屬性「func」陣列,如下:
在專案Activity中使用ListView元件的方式與其他元件相同,先新增、取得再設定,讀者可新增專案或使用本書建立的Atm專案,在MainActivity中進行練習,如下:
1. 在版面中新增ListView
請開啟專案下的res/layout/content_main.xml,在左方的元件區的「Containers」分類下找到「ListView」元件,點擊後放置在畫面預覽區適當的位置,如下圖:
再連擊剛才放進入的ListView,為其設定id屬性為「list」,如下圖:
2. 程式中取得ListView
再開啟MainActivity,在onCreate方法中使用findViewById取得ListView元件,如下:
3. 產生Adapter並設定
因為資料來源為字串陣列,因此可使用ArrayAdapter,其建構子的規格如下:
提示:
如果下方未出現參數建議提示框,當游標在建構子的括號中時,按下「Ctrl+P」可顯示參數提示。
建構子的第一個參數為Context,可使用「this」,因為MainActivity的上層類別即是Context,第二個參數代表的是單列項目的設計圖,未來在ListView中每一列資料會使用的版面配置XML檔,在此,可使用Android SDK內提供的版面「android.R.layout.simple_list_item_1」,最後參數則是本例的字串陣列func,如下:
[codesyntax lang=”java”]1 2 | ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, func); |
接下來呼叫ListView的setAdapter方法,設定adapter物件,如下:
[codesyntax lang=”java”]1 2 3 4 5 6 | //使用ListView ListView list = (ListView)findViewById(R.id.list); ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, func); list.setAdapter(adapter); |
執行結果如下圖: