在Android中打开浮动菜单(上下文菜单)?

2024-06-05

我创建了一个新菜单,名为 drmenu.xml。当我按下菜单按钮时它可以正常工作,但是当用户按下按钮时我需要打开上下文菜单。 下面的代码按钮只显示一个吐司。

这是我的 xml 布局:

 <LinearLayout
        android:id="@+id/MenuCall"
        android:layout_width="90dip"
        android:layout_height="match_parent"
        android:gravity="right|center_vertical" >
        <ImageView
            android:id="@+id/MenuCall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/imageiew6" />
    </LinearLayout>

这是我的java代码:

    final LinearLayout callback_var = (LinearLayout) findViewById(R.id.MenuCall);
    registerForContextMenu(callback_var);
    callback_var.setOnClickListener(new android.view.View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), "this is repeated",      Toast.LENGTH_LONG).show();
            openContextMenu(callback_var);
        }

如果你想创建一个上下文菜单,你必须调用该方法registerForContextMenu()向其传递应与上下文菜单关联的视图。

例如,假设将上下文菜单与按钮关联:

Button button = (Button) findViewById(R.id.my_button);
registerForContextMenu(button);

可以在 Activity 的 onCreate() 中调用它。然后,在同一个活动中,您需要覆盖onCreateContextMenu() method.

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.your_context_menu, menu);
}

然后你必须实施onContextItemSelected(),用于在按下上下文菜单中的项目时触发正确的操作:

@Override
public boolean onContextItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.first_action:
            // your first action code
            return true;
        case R.id.second_action:
            // your second action code
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}

现在,长按按钮将打开您在中定义的上下文菜单your_context_menu.xml file.

考虑到长按打开上下文菜单符合 Android 标准 UI,但是如果您希望单击一下即可显示上下文菜单,您可以查看答案在这里 https://stackoverflow.com/a/2981882/1584654

NOTE:正如所说here http://developer.android.com/guide/topics/ui/declaring-layout.html#attributes

ID 在整个树中不必是唯一的,但应该是 在您正在搜索的树的部分中是唯一的(这通常可能是 是整棵树,所以最好是完全唯一的 可能的)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Android中打开浮动菜单(上下文菜单)? 的相关文章

  • 4.4 在运行时设置语言时内存(可能是上下文)泄漏

    我有一个起始活动 A 和语言选择活动 B 活动 A 有一个语言指示 单击后会启动活动 B 活动 B 有一个语言列表视图 单击后会在共享首选项中设置语言代码并启动活动 A 活动 A 会覆盖attachBaseContext方法 读取语言首选项
  • Android Wear 应用程序无法连接到 google api 服务

    我正在尝试在 Android Wear 和 Android 手机之间建立连接 googleApiClient 连接失败 并返回 SERVICE VERSION UPDATE REQUIRED 状态代码 我究竟做错了什么 这是我的活动代码 O
  • Android 单例对话框

    我有一个处理大量进度对话框的 Android 应用程序 我必须为每个活动创建一个单独的对话框 对话框创建在构造时将活动 上下文 作为参数 有没有一种方法可以创建单个对话框 与应用程序而不是活动相关 并在不同的活动中显示它 这样我就不必重复创
  • Android:Realm + Retrofit 2 + Gson

    我使用时遇到问题Retrofit Gson and Realm 我知道这三个库的组合存在问题 一些答案建议设置一个ExclusionStrategy for Gson可以解决这个问题 我也尝试过 但是没有成功 我的代码如下所示 public
  • 应用程序在后台时的 GeoFence 设备

    我已经实现了 geoFence api 一切正常 但还是有一些问题 我想进一步澄清我的困惑 以下是一些困惑和问题 我希望我的用户在进入地理围栏区域时收到通知 我已经实施了地理围栏转换意图服务按照指南 但当应用程序处于后台时它不会触发转换 我
  • 如何在Android中以编程方式设置闹钟?

    以下是我的代码 任何人都可以告诉我为什么它不起作用 我已经从中学到了本教程 http androidgenuine com tag alarmreceiver excellent tutorial 但它不起作用 任何帮助都是可观的 我的代码
  • Android IllegalStateException:无法执行活动的方法

    我是安卓新手 我想做的是当我按下按钮并将字符串写入文本字段时通过网络服务获取字符串 清单 xml
  • 如何使用appium和java在Android中向下滚动以单击元素?

    我想知道如何使用appium和java向下滚动以单击Android中的元素 我里面有一个元素列表 android support v7 widget RecyclerView由于它有10多个元素 所以我们需要滑动屏幕才能看到下面的元素 每个
  • Android应用程序:如何读取“设置”下的字体大小?

    我正在开发一个 Android 应用程序 我想阅读下面的字体大小设置 gt 显示 gt 字体大小 因此 如果用户将其字体大小设置为小 大 巨大 我想将其自动应用于我的所有文本 我使用的是三星 Galaxy Nexus Android 4 1
  • 使用材料设计在工具栏中滑动选项卡

    我一直在学习使用材料设计使用滑动选项卡这个帖子 http www exoguru com android material design navigation android sliding tabs with material desig
  • 请求的操作:声明您的广告 ID 权限

    今天我收到这封电子邮件 去年 7 月 我们宣布了广告政策变更 以帮助加强 安全和隐私 我们对使用的标识符添加了新的限制 针对儿童的应用程序 当用户选择删除他们的 广告 ID 以选择退出个性化广告 如果满足以下条件 开发人员将收到一串零而不是
  • Android 和 Azure 移动服务:使用 invokeAPI 返回记录集

    我正在尝试一些非常简单的事情 我有一个名为 missingvehiclesfrominventoryjob 的自定义 API 它只是从标准 SQL 查询返回记录集 我可以在我的 WinForms 和 Windows Phone 应用程序中轻
  • 从 URI 创建可写的 DocumentFile

    我正在尝试适应File基于文档系统的东西使用DocumentFile为了允许 API gt 29 上的外部存储读 写访问 我让用户使用以下命令选择 SD 卡根目录Intent ACTION OPEN DOCUMENT TREE 我得到一个U
  • Android API 14 - 网络操作/AsyncTask

    我最近提出了一个基于使用 POST 数据进行 HTTP 请求的问题 在这里找到 Android API 14 将数据发布到 HTTP https stackoverflow com questions 8464204 android api
  • Android 上的推送器

    我正在尝试让 Pusher 在 Android 上运行 这是我的需求 必须支持 私人 频道 必须支持安全连接 必须能够覆盖推送器 身份验证端点 注意 我已经尝试过以下路线 在 WebView 中加载 Pusher js 并让它回退到 Soc
  • 融合位置有时会停止

    我一直在开发一个跟踪用户位置的应用程序 为此 我使用了谷歌播放服务位置模块 又名融合位置 总而言之 一切正常 但有时 完全随机 我根本不再收到来自谷歌位置服务的位置更新 我的意思是 我的应用程序工作正常 但没有位置更新 不仅如此 如果我启动
  • 语音识别器在第一个结果后听不到声音

    我在Android中使用SpeechRecognizer和RecognizerIntent来实现语音识别 我的目标是在语音识别器在屏幕上显示结果后重新开始收听语音 为此 我使用以下代码 问题是 第一次运行良好并显示结果 但在第二次开始监听
  • 我可以为每个片段单独提供工具栏吗?如何处理导航抽屉

    在我的应用程序中 某些页面的工具栏中有自定义视图 有些片段具有透明工具栏 有些片段具有坐标布局滚动 因此 我决定为每个片段单独设置工具栏 我想知道这是否是一个好的做法 如果有人已经这样做了 请分享代码或示例 您可以在片段中使用自定义工具栏
  • Android:“无法初始化可视化引擎”

    我三天前开始为 Android 编程 今天我想使用 android Api 中的一些类来做一些更困难的事情 我找到了 Visualizer 类 第一次尝试时遇到了问题 我在不同论坛上读到很多帖子 人们有同样的问题 无法初始化可视化引擎 我将
  • Android 上方向改变时如何避免重新启动 Activity

    我正在创建一个 Android 应用程序 在其中在画布上绘制视图 当设备的方向改变时 活动将重新启动 我不想这样 如何避免在方向改变时重新启动 Activity 有多种方法可以做到这一点 但正如给定的here https stackover

随机推荐

  • 强制关闭导致HTTP实体可能不为空

    这里是发送数据 Http 的完整代码 asynctask private class MyAsyncTaskPupuk extends AsyncTask
  • 如何使用 Jsoup 获取包含非 ASCII 字符(ą、ś ...)的 URL?

    我正在使用 jsoup 解析一些波兰网站 但我对 URL 中的 等特殊字符有问题example com k t读起来像example com k 每个没有这个特殊字符的查询都可以完美运行 我努力了Document doc Jsoup par
  • git 别名:多个命令、可变参数

    我经常发现自己输入以下内容 git push remote1 branch1 branch2 tag1 tag2 tag3 git push remote2 branch1 branch2 tag1 tag2 tag3 我更喜欢一个别名 我
  • 散景图只会弹出一个空白窗口

    所以我最近一直在尝试学习散景 一切都很顺利 但突然间 每当我尝试制作散景图时 浏览器就会显示一个空白页面 我没有收到任何错误代码 只有空白页 这是我几天前成功用来创建绘图的程序 我什至尝试加载几周前制作的 html 绘图文件 该文件在同事计
  • 在 Android 上检测已接听的拨出电话

    我知道这个问题已经被问过很多次了 但没有答案 但我仍然希望有人终于解决了这个问题 问题 我有一台运行 Android 2 3 的未 root 设备 我需要创建一项服务 打电话 等待呼叫被应答 接听电话后挂断电话 有超时 和其他许多人一样 我
  • Laravel 规则和正则表达式 (OR) 运算符的问题

    我的 Laravel 规则和正则表达式操作有一个小问题 基本上 规则是一个数组 如下所示 room gt required alpha num min 2 max 10 我遇到的问题是使用正则表达式和 时 或 运算符 例如 cid gt r
  • 获取信封 URL

    有没有办法使用 API 获取用户在 DocuSign 网站上查看特定信封的 URL 我并没有尝试使用嵌入式签名体验 因此 API 提供的各种信封 视图 不是所需的 URL 目标是在自定义 Web 应用程序中提供一个链接 单击该链接时将根据用
  • 如何在 WPF 数据网格中添加页脚行?

    如何在 WPF 数据网格中添加页脚行 我必须在 WPF 数据网格中为每列的总和添加一行 我不想使用任何 dll 或 telerik 以及类似的东西 仅使用 Microsoft 组件来执行此操作 我正在尝试这样做
  • 难以理解 R 中双括号和单括号子集之间的区别[重复]

    这个问题在这里已经有答案了 我很难理解双括号子集和单括号子集之间的区别 我在开源编程方面相当陌生 我很难理解 R 中的 help 函数 因为考虑到我目前对 R 的理解 其中的一些信息对我来说太技术性了 我尝试过谷歌搜索差异 虽然它给了我一个
  • 在 ASP .NET Core 2.1 Web Api 中启用 CORS

    我正在使用 ASP NET Core 2 1 Web API 和 React 编写应用程序 我的服务器位于 localhost 5000 上 客户端位于 localhost 3000 上 我想用 axios 发送 post 请求 但在浏览器
  • 如何在JavaFX中为TextArea设置圆角?

    我需要在 TextArea 上有圆角 但它看起来有点奇怪 看起来 有些内层也应该有相同半径的圆角 但是哪一个呢 我使用这个CSS text area fx background color dbb1b1 fff0f0 fx backgrou
  • 从另一个分支或从 master 创建 Git 分支?

    所以我是 Git 新手 我最近从存储库中提取了主分支的新版本 我创建了一个branch 1 获取某个功能并将其推送到存储库并创建拉取请求 现在我创建了一个新的branch 2 具有另一个功能 但由于我的拉取请求尚未合并 再次拉取 maste
  • 根据多行中的总分对 mysql 中的用户进行排名

    我有与这个问题中描述的非常相似的要求 mysql中的用户按积分排名 https stackoverflow com questions 34637943 rank users in mysql by their points 唯一的区别在于
  • MySQL 可以存储多少行?

    所以我是一个初学者 刚刚自学了几个月的MySQL 我在工作中总是使用 phpMyAdmin 我过去的工作只涉及大约 100k 行的表 所以没有什么大问题 然而 我的客户现在想要在表中存储大约 800 万行 MySQL phpMyAdmin
  • 如何在C中将一个字符串拆分为2个字符串

    我想知道如何获取 1 个字符串 用分隔符 例如空格 将其拆分为 2 个字符串 并将这 2 个部分分配给 2 个单独的字符串 我尝试过使用strtok 但无济于事 include
  • GO中的优先级队列

    谁能向我解释一下 我想在GO中实现一个优先级队列 接口实现来自link https golang org pkg container heap example priorityQueue 但优先级最低 我的代码 pq make Priori
  • 为 JSP 创建注销链接?

    当用户登录我的应用程序时 他提交一个要通过 Servlet 处理的表单 servlet 为用户创建一个会话 我如何创建一个链接以便用户可以注销 我似乎无法直接链接到 Servlet 如何删除会话并链接回主页 HttpSession sess
  • 读取 Android 4.2 中的 APN?

    我有个问题阅读 APN在安卓v4 2中 是读 不是写APNS 它抛出一个安全异常 没有写入 APN 设置的权限 用户 10068 和当前用户都没有权限 进程有 android permission WRITE APN SETTINGS 相同
  • 如何通过仅调用一个命令来构建多个目标?

    我得到了一个像下面这样的 Makefile PHONY all all aaa 2 bbb 2 aaa 2 aaa 1 common 1 create 2 bbb 2 bbb 1 common 1 create 2 程序 create 2
  • 在Android中打开浮动菜单(上下文菜单)?

    我创建了一个新菜单 名为 drmenu xml 当我按下菜单按钮时它可以正常工作 但是当用户按下按钮时我需要打开上下文菜单 下面的代码按钮只显示一个吐司 这是我的 xml 布局