Android学习笔记——Menu(三)

  • 知识点

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习。

  • Popup Menu(弹出式菜单)

弹出式菜单是一种固定在View上的菜单模型。主要用于以下三种情况:

  1. 为特定的内容提供溢出风格(overflow-style)的菜单进行操作。
  2. 提供其他部分的命令句(command sentence)如Add按钮可以用弹出菜单提供不同的Add的操作。
  3. 提供类似于Spinner的下拉式菜单但不保持持久的选择。

                                                       

那怎样显示弹出式菜单呢?

如果你在XML文件中定义了菜单,那么以下三步就可显示:

1.用PopupMenu的构造器实例化弹出式菜单,需要当前应用的Context和菜单需要固定到的View。

2.使用MenuInflater填充你的菜单资源到Menu对象中,这个Menu对象是由PopupMenu.getMenu返回的(在API 14和以上 可以用PopupMenu.inflater替代)

3.调用PopupMenu.show()

下面通过一个例子来理解PopupMenu的使用:

 1 public void showPopup(View v){
 2         PopupMenu popup = new PopupMenu(this,v);
 3         MenuInflater inflater = popup.getMenuInflater();
 4         inflater.inflate(R.menu.popup, popup.getMenu());
 5         popup.setOnMenuItemClickListener(this);
 6         popup.show();
 7     }
 8
 9     @Override
10     public boolean onMenuItemClick(MenuItem arg0) {
11         switch (arg0.getItemId()) {
12         case R.id.item1:
13             Toast.makeText(this, "you have clicked the item 1", Toast.LENGTH_LONG).show();
14             break;
15         case R.id.item2:
16             Toast.makeText(this, "you have clicked the item 2", Toast.LENGTH_LONG).show();
17             break;
18         case R.id.item3:
19             Toast.makeText(this, "you have clicked the item 3", Toast.LENGTH_LONG).show();
20             break;
21         default:
22             break;
23         }
24         return false;
25     }

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical"
 6    >
 7
 8     <TextView
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:text="@string/clickMe"
12         android:onClick="showPopup"
13         android:clickable="true"/>
14
15     <ImageButton
16         android:layout_width="wrap_content"
17         android:layout_height="wrap_content"
18         android:src="@drawable/ic_launcher"
19         android:clickable="true"
20         android:onClick="showPopup"  />
21
22 </LinearLayout>

时间: 2024-10-11 20:52:40

Android学习笔记——Menu(三)的相关文章

Pro Android学习笔记(三二):Menu(3):Context菜单

什么是Context menu 在桌面电脑,我们都很熟悉Context menu,按鼠标右键显示的菜单就是context菜单.在Android中,通过长时间鼠标按键可以触发context菜单.对于触屏设备,手指长按就是长鼠标按键事件. 一个activity有一个且只能有一个OptionMenu,一个view可以有一个且最多只能有一个ContextMenu.检查鼠标长按是基于view来监听.因此一个activity中可有多少个view,就可以有多少个ContextMenu. 注册View带有Con

Pro Android学习笔记(三):了解Android资源(上)

在Android开发中,资源包括文件或者值,它们和执行应用捆绑,无需在源代码中写死,因此我们可以改变或替换他们,而无需对应用重新编译. 了解资源构成 参考阅读Android学习笔记(三八):资源resource(上).XML解析(XmlPullParser),Android学习笔记(三九):资源resource(下). Strings资源.位于res/values下,可以有一个或多个xml文件.其中最为常见的是strings.xml,对于demo这类小例子,为了方便常全部都放在strings.x

【转】Pro Android学习笔记(三):了解Android资源(上)

在Android开发中,资源包括文件或者值,它们和执行应用捆绑,无需在源代码中写死,因此我们可以改变或替换他们,而无需对应用重新编译. 了解资源构成 参考阅读Android学习笔记(三八):资源resource(上).XML解析(XmlPullParser),Android学习笔记(三九):资源resource(下). Strings资源.位于res/values下,可以有一个或多个xml文件.其中最为常见的是strings.xml,对于demo这类小例子,为了方便常全部都放在strings.x

Android学习笔记(三)

在手机应用中菜单是很重要的一部分,它能够以直观的界面让用户去选择,现在我们学习如何去新建一个菜单. 首先在res目录下新建一个menu文件夹,然后在menu文件夹下新建一个Android XML File文件并命名为main.然后在 main.xml中添加如下代码: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/

Android学习笔记——Menu(二)

知识点: 这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu). 上下文菜单 上下文菜单提供对UI界面上的特定项或上下文框架的操作,就如同Windows中右键菜单一样. 在Android中,有两种提供上下文操作的方式:一种是在浮动的上下文菜单(长按弹出)中,另一种是上下文操作模式里. 那么怎样创建一个浮动的上下文菜单(floating context menu)呢? 1.调用registerForContextMenu()方法为V

Android学习笔记(三二):线程:后台异步任务AsyncTask

去五金店买个钻,不是因为我们需要钻,我们只需需要孔,既然五金店无法买孔,退而求其次,买打孔的工具.同样的对于后台线程,我们真正需要的是能够在UI主线程外进行处理,Android提供一个让程序员编写后台操作更为容易和透明AsyncTask. 使用AsyncTask,需要创建AsyncTask的资料,并实现其中的抽象方法以及重写某些方法.利用AsyncTask我们不需要自己来写后台线程,无需终结后台线程,例如stop()的方式.AsyncTask的方式对无限循环的方式并不太合适,可能更合适使用Run

Android学习笔记(三)Android开发环境的搭建

一.配置JAVA环境 二.配置Android开发环境 可以安装adt-bundle-windows,该压缩包一般自带Eclipse.或者安装Android Studio,要注意SDK的版本是否符合要求. 三.安装模拟器 在官网注册.下载并安装Genymotion.这里用另外一个夜神模拟器,下载安装好后,在安装目录Nox/bin下找到nox_adb.exe运行.打开模拟器,在Eclipse中运行Android项目的时候就会在该模拟器上运行.

Android学习笔记——Menu(一)

背景: Android3.0(API level 11)开始,Android设备不再需要专门的菜单键. 随着这种变化,Android app应该取消对传统6项菜单的依赖.取而代之的是提供anction bar来提供基本的用户功能. 创建3种基本的菜单 Options menu(选项菜单)和action bar 选项菜单是放置在app中具有全局影响的功能,例如“搜索”,“发邮件”,“设置”等 在Android3.0及以上,选项菜单被放置在action bar上. 创建一个选项菜单: 重写onCre

Android学习笔记——menu

该工程的功能是实现两个数相乘,并在另外一个Activity中显示计算的结果 以下的代码是MainActivity.java中的代码 package com.example.menu; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.v