本文实例讲述了Android开发使用PopupMenu创建弹出式菜单。分享给大家供大家参考,具体如下:

简介:

PopupMenu 代表弹出式菜单,它会在指定组件上,默认情况下,PopupMenu会显示该组件,PopupMenu可增加多个菜单项。

实际效果:

具体实现部分:

首先是主活动中的调用:

public class MainActivity extends Activity {

PopupMenu popupMenu = null ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

public void onPopupButtonClick(View button){

//创建PopupMenu对象

popupMenu = new PopupMenu(this, button);

//将 R.menu.menu_main 菜单资源加载到popup中

getMenuInflater().inflate(R.menu.menu_main,popupMenu.getMenu());

//为popupMenu选项添加监听器

popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {

@Override

public boolean onMenuItemClick(MenuItem item) {

switch (item.getItemId()){

case R.id.plain_item:

//隐藏对话框

popupMenu.dismiss();

break;

default:

Toast.makeText(MainActivity.this,"you clicked->" + item.getTitle(), Toast.LENGTH_SHORT).show();

}

return true;

}

});

popupMenu.show();

}

}

在布局文件中添加点击事件:

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

xmlns:tools="http://schemas.android.com/tools"

xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

android:id="@+id/txt"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:onClick="onPopupButtonClick"

android:text="click here to text PopupMenu"

android:textSize="25dp"/>

菜单的布局文件:

一、在 /res 下建立 /menu文件夹

二、在menu文件夹下建立:menu_main.xml:

android:icon="@drawable/seek02">

android:id="@+id/font_10"

android:title="font_10"/>

android:id="@+id/font_12"

android:title="font_12"/>

android:id="@+id/font_14"

android:title="font_14"/>

android:id="@+id/font_16"

android:title="font_16"/>

android:id="@+id/font_18"

android:title="font_18"/>

android:title="plain_item"/>

android:icon="@drawable/seek03">

android:id="@+id/red_font"

android:title="red_title"/>

android:id="@+id/green_font"

android:title="red_title"/>

android:id="@+id/blue_font"

android:title="red_title"/>

三、在menu文件夹下建立:context.xml

android:id="@+id/red"

android:title="red_title"

android:alphabeticShortcut="r"/>

android:id="@+id/green"

android:title="red_title"

android:alphabeticShortcut="g"/>

android:id="@+id/blue"

android:title="red_title"

android:alphabeticShortcut="b"/>

希望本文所述对大家Android程序设计有所帮助。

android popupmenu 动态添加,Android开发使用PopupMenu创建弹出式菜单完整实例相关推荐

  1. android popupmenu 动态添加,Android PopupMenu 的使用

    Android 轻量化组件 PopupMenu 的使用 估计很多人遇到过这种场景: 要求弹出的PopupWindow里面是一个列表,我们使用时都是在里面套个ListView或RecyclerView ...

  2. android popupmenu 动态添加,Android PopupMenu弹出菜单的实现

    Android PopupMenu弹出菜单的实现 (1)布局文件:用于弹出菜单的处罚button: xmlns:tools="http://schemas.android.com/tools ...

  3. android popupmenu 动态添加,android中PopupMenu的使用

    PopupMenu可以非常方便的在指定view的下面显示一个弹出菜单,类似于actionbar溢出菜单的效果.它的菜单选项可以来自于menu资源,因此非常方便.下面是在网上找的一个PopupMenu的 ...

  4. android popupmenu 动态添加,Android简单实现列表菜单--PopupMenu的简单使用。

    最近发现PopupMenu用来做菜单非常的方便,而且使用也非常的简单,下面我们就来看下如何使用的吧. 首先在布局文件中创建两个Button. xmlns:android="http://sc ...

  5. android fragment动态添加,Android动态添加Fragment

    效果图如下: 项目结构图如下: Fragment1: package com.demo.dongtaifragment; import android.app.Fragment; import and ...

  6. android radiogroup 添加,如何在android中动态添加textview到radiogroup

    大家好, 我们想动态地在radiogroup旁边添加textview.基于服务响应,我们需要在不使用xml的情况下将标签添加到radiogroup. 在某些情况下基于最长无线电如何在android中动 ...

  7. Android实现动态贴纸,Android开发之仿微博贴纸效果实现——进阶篇

    上个月写了一篇<Android开发之仿微博贴纸效果实现--基础篇>,文章中提到还有一篇进阶篇要写,很早就想动笔了,因中途去维护了开源库<高仿微信图片选择器2.0版本>,导致耽搁 ...

  8. android的动态注册,Android应用开发之BroadcastReceiver(广播)的静态注册和动态注册 --Android开发...

    本文将带你了解Android应用开发之BroadcastReceiver(广播)的静态注册和动态注册 --Android开发,希望本文对大家学Android有所帮助 BroadcastReceiver ...

  9. android ,动态布局 butterknife,与Butterknife绑定在android中动态添加视图

    如何绑定布局中存在的视图,该视图使用ButterKnife动态添加到父视图中. 我有一个LinearLayout说容器.我有一个自定义布局,其中包含两个按钮,将此布局称为子视图 在活动中,我将chil ...

最新文章

  1. 分类问题-样本权重(sample_weight)和类别权重(class_weight)
  2. C语言回调函数Demo - Win32版
  3. Python之pandas:pandas.set_option函数的参数详细解释
  4. 2011年计算机等级考试二级java笔试练习题(10)_2010年3月计算机等级考试二级Java笔试题及答案...
  5. 利用反射球实现镜面效果
  6. c++实现多态的方法 虚表
  7. html 布局满屏,CSS全屏布局的5种方式
  8. 基于java的数据结构学习——数组实现的栈以及简单应用
  9. 神州信息预计2020年全年净利润4.35亿至6亿元
  10. 2021教师资格证中学科目二简答汇总分享
  11. 3分钟tips:协方差和相关系数的异同
  12. Grub 启动时的 Error 13: Invalid or unsupported executable 问题的解决
  13. html登录页面修改背景图片,html网页背景图片设置
  14. 微信小程序毕业设计 基于微信共享小程序系统开题报告
  15. uniapp--微信小程序--云开发生成短连接h5跳转小程序
  16. 利用Selenium(爬虫)爬取物流信息,并用邮件提醒自己物流更新
  17. 输入今天日期输出明天日期
  18. Unity TileMap工具教程
  19. Linux虚拟声卡有吱吱声,解决Win7+8系统爆音有杂音吱吱声
  20. 左耳听风 第二十一周

热门文章

  1. C14500碲铜棒C14500对应国标牌号
  2. matlab二次多项式插值,MATLAB应用——多项式与插值函数
  3. error LNK2019: unresolved external symbol错误,解决
  4. xss靶场、xss.haozi.me靶场详细通关教程
  5. 荣耀2023届校园招聘内推码
  6. python获取图像的长和宽尺寸,通道数量
  7. MB KB Mb Kb Mbps Kbps小结
  8. emacs linux 教程,Emacs入门系列:3分钟学会Emacs基本操作
  9. Unable to find rebel.xml in artifact eui:war. This file is required to enable JRebel reloading.
  10. linux分区表导出与恢复,Linux下的硬盘数据恢复与分区表恢复