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>

(0)

相关推荐

  • 用Android MenuInflater创建菜单项的方法步骤

    之前在一篇文章中已经讲过了菜单项的创建方法,但是那种方法效率较低,维护不易,现在实现另一种方法创建菜单. MenuInflater,通过此类我们可以轻松的创建菜单项,具体步骤如下: 1.在res/menu/文件夹下,找到main.xml文件,此文件就是我们定义菜单项的地方,在些文件中添加如下菜单项: 复制代码 代码如下: <item android:id="@+id/menu1" android:icon="@android:drawable/alert_dark_fr

  • Android提高之自定义Menu(TabMenu)实现方法

    一般使用过UCWEB-Android版的人都应该对其特殊的menu有一定的印象,把menu做成Tab-Menu(支持分页的Menu),可以容纳比Android传统的menu更丰富的内容(Android的menu超过6项则缩略在[更多]里),本文参考网上的例子的基础上对例子进行简化以及封装,使其作为一个复合控件融入自己的framework. 先来看看本文程序运行的效果如下图所示: TabMenu本身就是一个PopupWindow,PopupWindow上面放了两个GridView,第一个GridV

  • Android仿微信菜单(Menu)(使用C#和Java分别实现)

    本篇是对安卓菜单使用编程方式实现,当然可以使用XML的方式完成同样的功能,基本Java和C#写法都是一致的,所以使用XML的方式在本篇中使用Java演示,需要注意的是,对于如果不是VS开发的话,那么资源文件名称必须以小写开头,否则会报错. 运行效果 C#实现 using Android.App; using Android.OS; using Android.Views; using Android.Widget; namespace MenuDemo { [Activity(Label = "

  • Android开源组件SlidingMenu侧滑菜单使用介绍

    现在很多android应用都有侧滑菜单,效果很不错. GitHub上有SlidingMenu的开源库,使用起来很方便. SlidingMenu GitHub地址:https://github.com/jfeinstein10/SlidingMenu.GitHub上说,Sliding结合ActionBarSherlock使用功能可以更丰富,ActionBarSherlock GitHub地址:https://github.com/JakeWharton/ActionBarSherlock 附csd

  • Android Menu半透明效果的开发实例

    不知道大家是否用过天天动听,对于它界面上的半透明Menu效果,笔者感觉非常漂亮.下面是天天动听半透明Menu的截图,欣赏下吧: 感觉还不错吧?那么如何实现这种半透明Menu效果呢?本文就重点讨论并给出这种Menu的具体代码实现过程. 首先分析下实现这种半透明Menu所需做的工作,并进行合理分解: 1.  利用Shaper设置一个半透明圆角背景. 2.  定义Menu布局,主要就GridView,把图标都放在这个GridView. 3.  Menu事件, 通过PopupWindow或者AlertD

  • 在Android中创建菜单项Menu以及获取手机分辨率的解决方法

    在Activity中覆写下面两个方法: 复制代码 代码如下: // 创建菜单 @Override public boolean onCreateOptionsMenu(Menu menu) {  menu.add(0, 0, 0, "关于");  // menu.add(int groupId, int itemId, int order, CharSequence title)  menu.add(0, 1, 1, "退出");        return sup

  • Android创建Menu菜单实例

    本文实例讲述了Android创建Menu菜单的方法.分享给大家供大家参考.具体方法如下: 复制代码 代码如下: package com.test; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.provider.Settings; import android.view.Menu; import android.view.MenuInflat

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

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

  • Android动态添加menu菜单的简单方法

    从menu按键开始,涉及以下3个方法: 1.onCreateOptionsMenu(Menu menu)2.onPrepareOptionsMenu(Menu menu)3.onOptionsItemSelected(MenuItem item) 方法名 触发时间onCreateOptionsMenu 进入Launcher后第一次点MENU按钮时触发onPrepareOptionsMenu 有两种情况:1.进入Launcher后第一次点MENU按钮触发onCreateOptionsMenu后调用

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

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

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

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

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

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

  • Android学习笔记45之gson解析json

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

  • 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

  • Android学习笔记之蓝牙功能

    本文实例为大家分享了Android学习笔记之蓝牙功能的具体代码,供大家参考,具体内容如下 蓝牙:短距离无线通讯技术标准.蓝牙协议分为4层,即核心协议层.电缆替代协议层.电话控制协议层和其他协议层.其中核心协议层包括基带.链路管理.逻辑链路控制和适应协议四部分.链路管理(LMP)负责蓝牙组件间的建立.逻辑链路控制与适应协议(L2CAP)位于基带协议层上,属于数据链路层,是一个高层传输和应用层协议屏蔽基带协议的适配协议. 1).第一种打开蓝牙的方式: Intent enableIntent = ne

  • Android学习笔记之ActionBar Item用法分析

    本文实例讲述了Android ActionBar Item用法.分享给大家供大家参考,具体如下: 这里主要讲述ActionBar Item的使用方法.在手机上,按Menu键出现Menu菜单,但是在平板中可以把菜单放在ActionBar里面,放置的Item也比手机上多,下面详细介绍其用法: 1.在Androidmanifest.xml里面加上 <uses-sdk Android:minSdkVersion="11"/> 或者 <uses-sdk android:targ

  • Android学习笔记(二)之电话拨号器

    目前Android已经在只能手机市场已经具有强大的霸主地位,也吸引了越来越多的追捧者.Android的学习也越来越火.但是,报名费用确实大多人望而却步 一.新建项目CallPhone 1.1.建立项目 二.设置界面与项目名称 2.1.更改项目名称 res/values下strings.xml中更改app_name电话拔号器 string.xml <?xml version="1.0" encoding="utf-8"?> <resources>

  • Android学习笔记之ContentProvider和Uri详解

    本文介绍了自定义Content Provider的相关内容,完全解析内容提供者的用法.Content Provider,内容提供者,相信大家对这个组件的名字都不陌生,可能是自己平时做的都是一些简单的App,所以对于Content Provider的使用并不是很多,也不是特别熟悉.但是这里还是对Content Provider作个简单的总结,不是很深入,但是希望能给包括我在内的初学者一点帮助,看完这篇能对这个组件有个总体上的了解. 一.使用ContentProvider(内容提供者)共享数据 Co

随机推荐