Android之在活动中使用Menu

手机屏幕非常有限,因此要充分利用屏幕空间。Android提供了一种菜单的方式,可以让菜单得到充分地展示,而且还不占用任何屏幕空间。

那怎么创建菜单呢?

  1. 在 res 目录下新建 Menu 文件夹,在文件夹下再建一个叫 main 的菜单文件。.

  2. 在 main.xml 中添加如下代码:   

1 <menu
2     xmlns:android="http://schemas.android.com/apk/res/android">
3     <item
4         android:id="@+id/add_item"
5         android:title="Add"/>
6     <item
7         android:id="@+id/remove_item"
8         android:title="Remove"/>
9 </menu>

  在这里创建了两个菜单项,其中<item>标签就是用来创建具体的某一个菜单项,通过 id 给这个菜单项指定一个唯一的标识符, title 给这个菜单项指定一个唯一的名称。

  3. 在菜单项所在的活动中重写 onCreateOptionsMenu() 方法(重写方法快捷键 Ctrl+O)

1 public boolean onCreateOptionsMenu(Menu menu){
2      getMenuInflater().inflate(R.menu.main,menu);
3      return true;
4 }

    通过 getMenuInflater() 方法能够得到所在Activity的 MenuInflater 对象,再调用它的 inflate() 方法来设置menu XML里的 menu 作为该Activity的菜单,就可以给当前活动创建菜单了。

    inflate()  方法接受两个参数,

      第一个参数用于指定通过哪一个资源文件来创建菜单;

      第二个参数用于指定菜单项将添加到哪一个 Menu 对象中,这里可以直接使用方法中传入的 menu 参数。

    然后这个方法返回 true,表示允许创建的菜单显示出来;如果返回了 false,创建的菜单将无法显示。

  4. 当然菜单定义出来不是为了看的,我们可以给菜单定义响应事件。

    重写 onOptionsItemSelected()方法:

 1 public boolean onOptionsItemSelected(MenuItem item){
 2     switch(item.getItemId){
 3          case R.id.add_item:
 4                Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show();
 5                break;
 6          case R.id.remove_item:
 7                Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show();
 8                break;
 9           default:
10     }
11      return true;
12 }        

    通过调用item.getItemId() 来判断点击的是哪一个菜单项。

  添加上菜单后重新运行程序,会发现标题栏右侧有三个点的符号,这就是菜单按钮。

原文地址:https://www.cnblogs.com/hong-yu0415/p/9408973.html

时间: 2024-10-09 14:34:22

Android之在活动中使用Menu的相关文章

Android第一行代码学习笔记三---在活动中使用Menu

在活动中使用Menu: 如果你活动中大量的菜单需要显示,这个·时候·界面·设计就会比较尴尬,Android给我们提供了一种方式,可以让菜单都能得到展示的同时,还能不占用任何空间.· res目录下新建一个menu文件夹,右击res目录->New->Directory,输入文件名menu,点击OK,接着在这个文件夹下.新建一个菜单文件,右击menu文件夹->New->Menu resource file.文件名输入main. 打开文件main.xml,输入如下代码: <?xml

《Android第一行代码》学习记录02 - 在活动中使用Menu

必要步骤: 在res目录下新建menu文件夹,并新建菜单文件 在菜单项中添加菜单项,类似如下代码: <menu xmlns:android=”http://schema.android.com/apk/res/android”> <item android:id=”@+id/itemId1” android:title=”itemName1”/> <item android:id=”@+id/itemId2” android:title=”itemName2” /> &

Android——在活动中创建menu

在手机中,屏幕有限的,当你有大量菜单需要在活动中显示时,界面设计将会很困难,并且不好看,此时就需要有一个menu来帮助了. 创建menu第一步: 如果你的res文件夹中没有menu文件夹,就右击res目录-New-Directory,输入文件夹名为menu,并点击OK.然后再右击该文件夹New-Menu resource file创建一个名为main的菜单文件,点击OK完成. 创建menu第二步: 在main.xml中写如下代码:在菜单中设定两个选项. 创建menu第三步: 在MainActiv

在活动中使用Menu

1.在res下创建menu普通文件夹,在menu下创建名为main的Menu资源文件 2.在menu组件下创建item组件:资源id,title标题名称 3.覆盖活动中的onCreateOptionsMenu(Menu menu) 例:public boolean onCreateOptionsMenu(Menu menu) {//创建设置菜单,覆盖方法 getMenuInflater().inflate(R.menu.main, menu);//调用父类方法getMenuInflater(),

在活动中使用Toast和Menu

在创建的活动中使用Toast 在onCreate方法中添加以下代码 点击按钮,效果如图 在活动中使用Menu 首先在res目录下新建一个Menu文件夹,接着在中国文件夹下创建一个名为main的菜单文件 然后在main.xml中添加以下代码 接着在FirstActivity中重写onCreateOptionsMenu()方法 然后在FirstActivity中重写onOptionsItemSelect()方法 重新运行程序,标题栏右侧有一个三点的符号,这就是菜单按钮 原文地址:https://ww

Android菜单详解(一)——理解android中的Menu

前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至今为止看到的最好的一本android书,中文版出到<精通Android 2>. 理解Android的菜单 菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至都要有一个"Menu"键,由此可见菜单在Android程序中的特殊性.An

Android studio 中R.menu的创建

对于Android开发中的menu没有声明的情况: 首先,将鼠标定位到红色的menu上面, 然后,Alt+enter组合键,建立文件menu, 然后将以下代码复制进去: <item android:id="@+id/item_store" app:showAsAction="always" android:title="" android:icon="@mipmap/ic_launcher" android:orderI

Android菜单详解——理解android中的Menu

Android菜单详解--理解android中的Menu 前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至今为止看到的最好的一本android书,中文版出到<精通Android 2>. 理解Android的菜单 菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至都要有一个"Menu&qu

Android第一行代码学习笔记二---在活动中使用Toast

Toast:是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间. 首先需要定义一个弹出Toast触发点,接着笔记一的程序,正好上面有个按钮,我们就点击这个按钮的时候弹出来一个Toast,在onCreate()方法中添加如下代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat