基本元件Spinner與ListView

表單是一種蠻常用的功能

就像switch一樣,一行就能搞定多數的選擇了

不過同樣都是顯示多筆資料,Spinner(下拉選單)跟ListView(清單)其實還蠻不一樣的

首先,這個右邊有個小箭頭可以點開的是Spinner


這個一行一行全部顯示的是ListView


不管你要提供的選擇是什麼型態的,都沒問題,下面就用String來做範例

首先一定會先要一個Arratlist



以及一個選單的架構,ArrayAdapter



看到泛型<>,就知道他真的放什麼型態都可以了~

然後不管是Spinner還是ListView,只要把Adapter給set進去就完成了基本的雛型



當然除了長相以外,最重要的還是功能

再選擇的地方,兩個View的方法開始產生了分歧

雖然兩個都有setOnItemClickListener,但是Spinner用的卻是OnItemSelectedListener

這是Spinner的Listener


然後這是ListView的


比較特別的是,雖然Spinner有提供沒選擇任何選項的狀態

但是動態輸入後,他預設的Item就是第一項,所以onNothingSelected感覺上沒啥用...

再來是ListView,同樣是用parent取得選取的項目,如果ListView用parent.getSelectedItem().toString()放到String的位置會爆掉

要用parent.getItemAtPosition(position).toString()

另外要注意的一小點是

因為Listener都是用new的,所以除非是全域變數,不然副程式裡的變數要加final才能給listener裡面使用喔

留言

這個網誌中的熱門文章

Thread與Handler淺介紹

使用SQLite