可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner。 list的样式和theme有关,如果theme设置不正确,还可能会出现异常。
相关的代码如下:
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小例子中下载。