按照官网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()回调函数时执行。翻译