Android开发之Menu和actionBar

一、通过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     }

 

posted @ 2016-11-16 13:37  Godfunc  阅读(1304)  评论(0编辑  收藏  举报