菜单(Menu)

菜单当然是必不可少的控件了。Android手机都会有一个menu键,默认点击即弹出一个底部菜单。当然,菜单也可以通过其他操作触发。一般menu有两种创建方法,一种在xml文件中创建menu资源,一种在Java代码中创建,以option menu为例,分别讲解两种menu的创建方法。

1.       通过xml文件创建menu

这种方法非常简单,而且实现了界面与代码的分离。需要在res目录下新建一个名为menu的文件夹,并在里面创建一个menu配置文件。通过3个标签来创建menu资源。如表4.2.10所示:

表4.2.10  3个标签来创建menu资源

标签

描述

menu

menu标签定义了一个menu,它是其他两个标签的容器,必须有一个menu标签作为该文件的根标签

group

一个可选的标签,在该标签下的item内容分为一个小组,通过分组可以实现多个item共享属性

item

创建了一个menuItem,即一个menu中单独的条目,在该标签下还可包含menu标签,代表子菜单

Xml代码如下:

<menuxmlns:android="http://schemas.android.com/apk/res/android" >

 

    <item

        android:id="@+id/item1"

        android:title="保存"

       android:icon="@android:drawable/ic_menu_save"

        />

     <item

        android:id="@+id/item2"

        android:title="管理"

       android:icon="@android:drawable/ic_menu_manage"

        />  

     <item

        android:id="@+id/item3"

        android:title="帮助"

       android:icon="@android:drawable/ic_menu_help"

        />  

     <item

        android:id="@+id/item4"

        android:title="详细信息"

       android:icon="@android:drawable/ic_menu_info_details"

        />    

     <item

        android:id="@+id/item5"

        android:title="分享"

       android:icon="@android:drawable/ic_menu_share"

        />    

     <!-- menu group -->

     <group android:id="@+id/group1">

         <item android:id="@+id/groupItem1"

            android:icon="@android:drawable/ic_menu_delete"

             android:title="删除"

             >

         </item>

         <itemandroid:id="@+id/groupItem2"

            android:icon="@android:drawable/ic_menu_edit"

             android:title="编辑"

             ></item>

     </group>

</menu>

代码解释:

         这里创建了较多的menu条目,要注意的是,Android默认只能显示2行3列6个菜单条目。如果超过6个,则menu条目中会有一个more选项,点击弹出剩余的菜单,而这些菜单将不显示图片。光有menu资源显然是不是创建一个menu的,创建一个option menu需要覆盖onCreateOptionsMenu(Menu menu)方法。在该方法中通过MenuInflater.inflate()方法为menu加入menu资源。代码如下所示:

         @Override

         public boolean onCreateOptionsMenu(Menumenu) {

                   // Inflate the menu; thisadds items to the action bar if it is present.

                   getMenuInflater().inflate(R.menu.main,menu);

                   return true;

         }

运行效果为图4.2.10-1和图4.2.10-2.


                                      图4.2.10-1


图4.2.10-2

1.      在Java代码中添加menu

详情看示例代码。

public class MainActivity extends Activity {

 

         @Override

         protectedvoid onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_main);

         }

 

         /**

          * 覆盖该方法,创建菜单

          */

         @Override

         publicboolean onCreateOptionsMenu(Menu menu) {

                   menu.add(0,1, 1, "分享").setIcon(android.R.drawable.ic_menu_share);

                   menu.add(0,2,2,"保存").setIcon(android.R.drawable.ic_menu_save);

                   returnsuper.onCreateOptionsMenu(menu);

         }

         /**

          * 监听menu点击事件

          */

 

         @Override

         publicboolean onOptionsItemSelected(MenuItem item) {

                   //TODO Auto-generated method stub

                   if(item.getItemId()== 1) {

                            Toast.makeText(this,"你点击了分享",Toast.LENGTH_SHORT).show();

                   }elseif(item.getItemId() == 2) {

                            Toast.makeText(this,"你点击了保存",Toast.LENGTH_SHORT).show();

                   }

                   returnsuper.onOptionsItemSelected(item);

         }

}

代码解释:

代码中通过重写onCreateOptionMenu方法创建一个menu,然后用add方法添加MenuItem,该方法参数依次为组Id,ItemId,顺序,显示的文本。重写了onOptionsItemSelected方法,监听menu的操作。运行效果如图4.2.10-3和图4.2.10-4所示


图4.2.10-3


图4.2.10-4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值