Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1182074
  • 博文数量: 233
  • 博客积分: 6270
  • 博客等级: 准将
  • 技术积分: 1798
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-26 08:32
文章分类

全部博文(233)

文章存档

2011年(31)

2010年(202)

我的朋友

分类: 嵌入式

2010-11-30 10:22:15

    在一个界面Activity中,在手机下含有一个menu的按钮,点击一个menu按钮,则会弹出菜单选项。而在Android中,menu的编写却不同于一般的控件方法,不res/layout下的xml中添加相应的控件,而是在res/menu下相应的xml文件中编写菜单的。

      首先需要了解一个类MenuInflater用来解析res/menu下的菜单布局文件。在Activity类中有一个getMenuInflater()的函数用来返回这个Activity的MenuInflater,并通过MenuInflater对象来设置menu XML里的menu作为该Activity的菜单。其具体代码如下所示:

public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater inflater=this.getMenuInflater();
    //设置menu界面为res/menu/menu.xml

    inflater.inflate(R.menu.menu, menu);
    return true;
}


     public boolean OnCreateOptionsMenu(Menu menu)是Activity中的创建选择类型菜单的函数,通过这个函数可以创建菜单,而创建菜单项的方式不单可以通过创建xml的menu文档的方式,也可以直接在该函数下编写代码,比如像这样:menu.add(0,0,0,"关于");
menu.add(0,1,1,"返回");

      最后是选择菜单项的事件监听,同样在Activity类中提供这样的一个函数:boolean onOptionsItemSelected(MenuItem item),其中item是当前选中的菜单项。

      在Activity类中,关于菜单的一些函数列举如下:

      void closeOptionsMenu();----利用编程的方式关闭选择项式的菜单。

      MenuInflater getMenuInflater();----在当前的界面context中返回一个承载当前界面的menu的MenuInflater。

      boolean onCreateOptionsMenu(Menu menu);----用来初始化Activity的标准化的选择菜单的内容。

      boolean onOptionsItemSelected(MenuItem item);----事件处理,当菜单里的一个选项被选中发生。

      void onOptionsMenuClosed(Menu menu);----事件处理,当菜单被closed时会调用这个函数。

      void openOptionsMenu();----利用编程的方式打开Options型的菜单。

阅读(833) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~