Android学习笔记——Menu介绍(三)

知识点

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

Popup Menu(弹出式菜单)

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

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

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

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

1.用PopupMenu的构造器实例化弹出式菜单,需要当前应用的Context和菜单需要固定到的View。
 2.使用MenuInflater填充你的菜单资源到Menu对象中,这个Menu对象是由PopupMenu.getMenu返回的(在API 14和以上 可以用PopupMenu.inflater替代)
 3.调用PopupMenu.show()

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

public void showPopup(View v){ PopupMenu popup = new PopupMenu(this,v); MenuInflater inflater = popup.getMenuInflater(); inflater.inflate(R.menu.popup, popup.getMenu()); popup.setOnMenuItemClickListener(this); popup.show(); } @Override public boolean onMenuItemClick(MenuItem arg0) { switch (arg0.getItemId()) { case R.id.item1: Toast.makeText(this, "you have clicked the item 1", Toast.LENGTH_LONG).show(); break; case R.id.item2: Toast.makeText(this, "you have clicked the item 2", Toast.LENGTH_LONG).show(); break; case R.id.item3: Toast.makeText(this, "you have clicked the item 3", Toast.LENGTH_LONG).show(); break; default: break; } return false; } <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/clickMe" android:onClick="showPopup" android:clickable="true"/> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" android:clickable="true" android:onClick="showPopup" /> </LinearLayout>

时间: 2024-09-08 20:43:47

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

Android学习笔记——Menu介绍(三)_Android

知识点 今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习. Popup Menu(弹出式菜单) 弹出式菜单是一种固定在View上的菜单模型.主要用于以下三种情况: 为特定的内容提供溢出风格(overflow-style)的菜单进行操作. 提供其他部分的命令句(command sentence)如Add按钮可以用弹出菜单提供不同的Add的操作. 提供类似于Spinner的下拉式菜单但不保持持久的选择. 那怎样显示弹出式菜单呢? 如果你在XML文件中定义了菜单,那么以下三步就可

Android学习笔记——Menu介绍(二)_Android

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

Android学习笔记——Menu介绍(二)

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

Android学习笔记——Menu介绍(一)_Android

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

Android学习笔记——Menu介绍(一)

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

【深度学习笔记】(三)Tensorflow on Android

[深度学习笔记](三)Tensorflow on Android 一.准备好Android Studio及预先训练好的模型pb文件 二.新建Android项目A并将pb模型放到assets文件夹 三.添加libandroid_tensorflow_inference_java.jar到项目A的libs文件夹.添加libtensorflow_inference.so到项目A的libs\armeabi文件夹 四.加载libandroid_tensorflow_inference_java库,通过Te

Android学习笔记45之gson解析json_Android

JSON即JavaScript Object Natation, 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. JSON对象: JSON中对象(Object)以"{"开始, 以"}"结束. 对象中的每一个item都是一个key-value对, 表现为"key:value"的形式, key-value对之间使用逗号分隔. 如:{"name":"coolxing

Android学习笔记(二)App工程文件分析_Android

App工程文件分析 关于如何创建一个最简单的Android App请参照链接: < Android学习笔记(一)环境安装及第一个hello world > http://www.jb51.net/article/52593.htm 创建完的工程文件如下图所示,本文对一些主要的文件进行分析. src文件分析 App源文件如图: 打开源文件 MainActivity.java 可看到如下代码: 源码主要功能如下: App源文件目录 package com.example.firstapp; 导入A

Android学习笔记之应用单元测试实例分析_Android

本文实例讲述了Android学习笔记之应用单元测试.分享给大家供大家参考,具体如下: 第一步:在AndroidManifest.xml中加入如下两段代码: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pccw" android:versionCode="1" android:versionName="1.0&qu