一、通过Menu目录下创建一个布局文件:
先看代码meu/main.xml:
1 <?xml version="1.0" encoding="utf-8"?> 2 <menu xmlns:android="http://schemas.android.com/apk/res/android"> 3 <item android:id="@+id/setting1" 4 android:showAsAction="never" 5 android:orderInCategory="100" 6 android:title="@string/setting1"/> 7 <item android:id="@+id/setting2" 8 android:orderInCategory="100" 9 android:showAsAction="never" 10 android:title="@string/setting2"/> 11 </menu>
MainActivity:
1 @Override 2 public boolean onCreateOptionsMenu(Menu menu) { 3 getMenuInflater().inflate(R.menu.main,menu); 4 return super.onCreateOptionsMenu(menu); 5 } 6 7 @Override 8 public boolean onOptionsItemSelected(MenuItem item) { 9 switch (item.getItemId()){ 10 case R.id.setting1: Toast.makeText(this,"Setting1",Toast.LENGTH_SHORT).show(); 11 break; 12 case R.id.setting2: Toast.makeText(this,"Setting2",Toast.LENGTH_SHORT).show(); 13 break; 14 } 15 return super.onOptionsItemSelected(item); 16 }
1、orderInCategory属性:
actionbar里每个item的优先级,值越大优先级越低,actionbar地方不够就会放到overflow中
2、接下来介绍一下showAsAction属性:
(1)always:这个值会使菜单项一直显示在ActionBar上。
(2)ifRoom:如果有足够的空间,这个值会使菜单显示在ActionBar上。
(3)never:这个值菜单永远不会出现在ActionBar是。
(4)withText:这个值使菜单和它的图标,菜单文本一起显示。
下面是三种显示效果:
二、动态添加:
动态添加的代码如下:
1 @Override 2 public boolean onCreateOptionsMenu(Menu menu) { 3 menu.add(0,1,0,"后退"); 4 menu.add(0,2,0,"前进"); 5 return super.onCreateOptionsMenu(menu); 6 } 7 8 @Override 9 public boolean onOptionsItemSelected(MenuItem item) { 10 switch (item.getItemId()){ 11 case 1: 12 Toast.makeText(this,"退",Toast.LENGTH_SHORT).show(); 13 break; 14 case 2: 15 Toast.makeText(this,"进",Toast.LENGTH_SHORT).show(); 16 break; 17 } 18 return super.onOptionsItemSelected(item); 19 }