關於Android Spinner setSelection 和 onItemSelected事件的觸發順序

在Android開發中。會遇到想setSelection但是不想觸發onItemSelected事件這種情況。

一般想法,是先移除監聽器,等修改完成之後,再添加監聽器。

但是,事實上,setSelection(int)這個方法最終是會post到主線程的消息隊列裏的,因此,真正的改變值發生在我們添加監聽器之後(如果放入消息隊列,執行的時候,當前函數早就運行完了)。這時候要使用setSelection(int, boolean)方法,這個方法會立即修改UI。


重點是setSelection(int)與setSelection(int, boolean)的區別。


參考:

http://bbs.csdn.net/topics/390515347?page=1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章