按照官網html
http://developer.android.com/guide/topics/ui/actionbar.html#Dropdown 和翻譯版android
http://hi.baidu.com/xmjmcai/item/6a05d50f260d45c49157180c ide
老是出一個問題。函數
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.academic_list_action_spinner, android.R.layout.simple_spinner_dropdown_item); ActionBar actionBar = getActivity().getActionBar(); actionBar.setDisplayShowTitleEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); OnNavigationListener mOnNavigationListener = new OnNavigationListener(){ @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { // TODO Auto-generated method stub return false; } }; actionBar.setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener );
最後一步老是報錯,也不知什麼緣由。後來看到其餘實現actionbar上的spinner的代碼,知道了解決辦法。ui
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.academic_list_action_spinner, android.R.layout.simple_spinner_dropdown_item); ActionBar actionBar = getActivity().getActionBar(); actionBar.setDisplayShowTitleEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); class OnNavigationListener implements ActionBar.OnNavigationListener{ @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { // TODO Auto-generated method stub Toast.makeText(getActivity(), ""+itemPosition+" "+itemId, Toast.LENGTH_SHORT).show(); return false; } } actionBar.setListNavigationCallbacks(mSpinnerAdapter, new OnNavigationListener() );
我原本覺得Java的這兩種定義對象是同樣的,如今看來仍是有區別的,至於究竟是什麼緣由我還不清楚。反正這樣是能夠解決的。spa
還有一個問題,就是有一次老是定義完設置完spinner以後,怎麼都顯示不出來,最後緣由是由於沒有setNavigationMode(),因此調用setNavigationMode()方法將ActionBar的操做模型設置爲ActionBar.NAVIGATION_MODE_LIST. 注意:這個步驟應該在Activity的onCreate()回調函數時執行。翻譯