可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner。 list的样式和theme有关,如果theme设置不正确,还可能会出现异常。

【转】 Pro Android学习笔记(五二):ActionBar(5):list模式-LMLPHP

相关的代码如下:

public class ListActionBarDemo extends SearchTestCase3 implements OnNavigationListener//List触发的回调函数接口
    @Override 
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState); 
        workWithListActionBar(); 
    }

protected void workWithListActionBar(){ 
        ActionBar bar = getActionBar(); 
        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);  //必须设置为list mode,因此tab和list模式不共存 
        //下面和设置spinner的adapter没有区别
        ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, 
                new String[]{"One","Two"}); 
        myAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        //加载adpter,设置回调函数。第一个函数是SpinnerAdatper接口,ArrayAdapter已经实现SpinnerAdatper的getView()函数,可以直接使用
        bar.setListNavigationCallbacks(myAdapter, this); 
    }

@Override //list触发的回调函数,所为范例,只简单地log。
   public boolean onNavigationItemSelected(int itemPosition, long itemId)
 { 
        Log.d("ListMode","List select position " +  itemPosition + " itemId " + itemId);
        return false; 
    } 
    
}

本博文涉及的例子代码,可以在Pro Android学习:ActionBar小例子中下载。

相关链接: 我的Android开发相关文章

05-04 08:18