android PopupMenu弹出式菜单的使用



PopupMenu代表弹出式菜单。他会指定组件上弹出PopupMenu,默认情况下PopupMenu会显示在该组件的下方或者上方,PopupMenu可以增加多个菜单项并且可以为菜单项添加子菜单、

首先在res/menu下编写xml文件my_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item

android:icon="@drawable/ic_launcher"

android:title="字体">

<menu>

<!-- 定义一个单项菜单项 -->

<group android:checkableBehavior="single" >

<item

android:id="@+id/font_10"

android:title="10号字体"/>

<item

android:id="@+id/font_12"

android:title="12号字体"/>

<item

android:id="@+id/font_14"

android:title="14号字体"/>

<item

android:id="@+id/font_16"

android:title="16号字体"/>

<item

android:id="@+id/font_18"

android:title="18号字体"/>

</group>

</menu>

</item>

<!-- 定义一个普通菜单项 -->

<item

android:icon="@drawable/fy_d_kf"

android:title="普通菜单"/>

<item

android:icon="@drawable/fy_d_kf2"

android:title="颜色">

<menu>

<!-- 定义一个单项菜单项 -->

<group>

<item

android:id="@+id/red"

android:title="红色"/>

<item

android:id="@+id/blue"

android:title="蓝色"/>

<item

android:id="@+id/green"

android:title="绿色"/>

</group>

</menu>

</item>

</menu>

在activity中主要的代码如下

public class MainActivity extends Activity {

private TextView edit;

private PopupMenu menu;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

edit = (TextView) findViewById(R.id.textView1);

edit.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

clickpopuMne(arg0);

}

});

}

public void clickpopuMne(View v) {

menu = new PopupMenu(this, v);

getMenuInflater().inflate(R.menu.my_menu, menu.getMenu());

menu.setOnMenuItemClickListener(new OnMenuItemClickListener() {

@Override

public boolean onMenuItemClick(MenuItem arg0) {

switch (arg0.getItemId()) {

case R.id.font_10:

menu.dismiss();

break;

default:

Toast.makeText(MainActivity.this, ""+arg0.getTitle(), Toast.LENGTH_SHORT).show();

}

return true;

}

});

menu.show();

}

}

时间: 2024-10-03 20:34:24

android PopupMenu弹出式菜单的使用的相关文章

Android中创建PopupMenu弹出式菜单

之前写过一篇创建option menu的文章:Android中创建option menu 本文主要是讲如何创建PopupMenu弹出式菜单 1.首先创建menu文件menu2.xml: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item androi

Xamarin.Forms Android PopupMenu问题二

Xamarin.Forms Android PopupMenu问题二 在上一篇文章Xamarin.Android 使用PopupMenu遇到的问题文章中讲到了兼容Android 5.0及以下版本,但又带了一个新的问题.这个问题在所有Android版本App都会遇到,此时会抛出一个异常: Java.Lang.RuntimeException: Failed to resolve attribute at index 6 经过多番尝试(在Xamarin.Android中调试,原生Android中调试

android popupMenu

菜单项配置文件 menu.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/search" android:icon="@android:drawable/ic_menu_se

android中RecyclerView控件实现长按弹出PopupMenu菜单功能

之前写过一篇文章:android中实现简单的聊天功能 现在是在之前功能的基础上,添加一个长按聊天记录,删除对应聊天记录的功能 RecyclerView控件,没有对应的长按事件,我们需要自己手工添加,修改对应的适配器类,注意红色内容为添加内容 ChatAdapter.java: package com.example.chenrui.app1; import android.support.annotation.NonNull; import android.support.v7.widget.R

UI控件之菜单(Menu)

(一)概述 本章给大家带来的是Android中的Menu(菜单),而在Android中的菜单有如下几种:OptionMenu:选项菜单,android中最常见的菜单,通过Menu键来调用SubMenu:子菜单,android中点击子菜单将弹出一个显示子菜单项的悬浮框, 子菜单不支持嵌套,即不能包括其他子菜单ContextMenu:上下文菜单,通过长按某个视图组件后出现的菜单,该组件需注册上下文菜单 本节我们来依依学习这几种菜单的用法~ (二)OptionMenu(选项菜单) 1)如何使用Opti

Win32 Windows编程 七

定时器消息 1. WM_TIMER 按照定时器设置的时间段,自动向窗口发送一个定时器消息WM_TIMER.优先级比较低 定时器精度比较低,毫秒级别,消息产生时间也精度比较低 2 .消息和函数 WM_TIMER : 消息ID wParam  定时器的ID lParam  定时器的处理函数 SetTimer :设置一个定时器 UINT_PTR SetTimer( HWND hWnd, // handle to window 窗口的句柄 可以为NULL UINT_PTR nIDEvent, // ti

走进windows编程的世界-----消息处理函数(3)

二 定时器消息 1 定时器消息 WM_TIMER   按照定时器设置时间段,自动向窗口发送一个定时器消息WM_TIMER. 优先级比较低.   定时器精度比较低,毫秒级别.消息产生时间也精度比较低.    2 消息和函数   2.1 WM_TIMER  - 消息ID    wParam: 定时器的ID    lParam: 定时器的处理函数 2.2 SetTimer  - 设置一个定时器 UINT SetTimer( HWND hWnd, //窗口的句柄,可以为NULL UINT nIDEven

GUI 基础

java基础教程-GUI 建立GUIs 本模块讲述图形用户界面的建立及布局.它介绍了抽象视窗工具包(AWT),一种建立GUIs的类包. AWT提供用于所有Java applets及应用程序中的基本GUI组件,还为应用程序提供与机器的界面.这将保证一台计算机上出现的东西与另一台上的相一致. 在学AWT之前,简单回顾一下对象层次.记住,超类是可以扩展的,它们的属性是可继承的.而且,类可以被抽象化,这就是说,它们是可被分成子类的模板,子类用于类的具体实现. 显示在屏幕上的每个GUI组件都是抽象类组件的

其它容器中,sd::forward_lis中的emlac天津交警出招治理送外卖交

导读:谭铁牛院士在第十九次中科院院士大会上发表了<人工智能:天使还是魔鬼>的主题报告,深度解读了60多年来人工智能发展历史,人工智能的七大现状,发 ? ? ? ? Cmd命令框执行进入至'MQ文件夹\bin'下,然后执行'sar mqnamesrvcmd',启动NAMESERVER.成功后会弹出提示框,此框勿关闭. 32 启动 每一个优秀的工程师可能都有一个硅谷梦,在全球顶级的互联网公司,和最优秀的工程师一起,做最酷的事情.这里,我希望能通过自己最近找工作的经历,帮助大 Daase API是T