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 @   Godfunc  阅读(1308)  评论(0编辑  收藏  举报
编辑推荐:
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
阅读排行:
· DeepSeek智能编程
· 精选4款基于.NET开源、功能强大的通讯调试工具
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
点击右上角即可分享
微信分享提示