基本元件Spinner與ListView
表單是一種蠻常用的功能
就像switch一樣,一行就能搞定多數的選擇了
不過同樣都是顯示多筆資料,Spinner(下拉選單)跟ListView(清單)其實還蠻不一樣的
首先,這個右邊有個小箭頭可以點開的是Spinner
不管你要提供的選擇是什麼型態的,都沒問題,下面就用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裡面使用喔
就像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裡面使用喔


留言
張貼留言