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