使用xml定义Menu
菜单资源文件必须放在res/menu目录中。菜单资源文件必须使用<menu>标签作为根节点。除了<menu>标签外,还有另外两个标签用于设置菜单项和分组,这两个标签是<item>和<group>
<menu>没有任何属性,但可以签套在<item>标签中,表示子菜单的形式,不过<item>标签中不能再嵌套<item>标签
1.<item>标签的属性含义如下:
Id:表示菜单项的资源ID
icon:菜单项图标资源ID
showAsAction:属性有五个之:ifroom、never、always、withText、collapseActionView
ifroom:会显示在Item中,但是如果已经有4个一晌的Item时会隐藏在溢出列表中。当然个数并不仅仅局限于四个,包括屏幕的宽窄而定。
never:永远不会显示。只在溢出列表中显示,而且只显示标题,所以在定义Item时,最好把标题都带上
always:无论是否已出,总会显示
withText:示意ActionBar要显示文本的标题。ActionBar会尽可能的显示这个标题,但是,如果图标有效并且受到ActionBar空间的限制,文本标题就有可能显示不全
collapseActionView:声明了这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。否则,这个操作视窗在默认的情况下是可见的,并且即便在用于不适用的时候,也要战还有操作栏的有效空间,一般要配合ifRoom一起使用才有效
就想家在menu一样,在activity的onCreateOptionsMenu方法里调用上述的xml文件:
getMenuInflater().inflate(R.menu.options, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search)
.getActionView();