Android 在ActionBar中添加spinner

按照官網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()回調函數時執行。翻譯

相關文章
相關標籤/搜索