2013年4月18日星期四

android利用Spinner達到PopupMenu的效果


PopupMenu是在Android Level 11(Android 3.0)才有支援,但如果想讓更多使用者使用話,也可以不用PopupMenu,利用Spinner即可達到效果。

Spinner(下拉式選單)在Android中會自動跳出選項讓使用者選擇,
這個部份就很像PopupMenu了,不過仍有幾個地方需要修正。

1.程式一執行就會跑到Listener的onItemSelected去把預設的選項先執行一次(PopupMenu是使用者要用到時才會呼叫)。

2.Spinner選擇和現在值相同時,不會呼叫Listener的onItemSelected,只有使用者選擇不同的值才會觸發。

3.Spinner佔有View的空間。

解決方法:

1.自行新增Listener,並將被擇時的執行方法寫進來。
2.繼承Spinner,@Override public void setSelection(int position) ,在設定Position時,即呼叫自行新增的Listener。
3.Activity裡設定boolean變數,判斷Listener是程式的第一次呼叫?還是被使用者呼叫?
4.隱藏Spinner。

基本上只要這樣做,即可利用Spinner達到PopupMenu的效果。

没有评论:

发表评论