覆盖 Android 上的物理菜单按钮

2023-11-24

我希望 Android 设备上的菜单键打开一个对话框,而不是在我的应用程序运行时打开菜单。我尝试将其编码为onCreateOptionsMenu(Menu menu)但它只在我第一次按下菜单按钮时起作用。我可以用其他方式来做吗?


您可以通过在活动中拦截系统按键来覆盖系统按键的默认行为。这是通过覆盖来完成的按键按下时 event, 并返回true如果您想阻止系统处理密钥。您的案例的代码应如下所示:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
   if ( keyCode == KeyEvent.KEYCODE_MENU ) {

       // perform your desired action here

       // return 'true' to prevent further propagation of the key event
       return true;
   }

   // let the system handle all other key events
   return super.onKeyDown(keyCode, event);
}

但这可能不适用于所有键;这样做的原因是密钥被发送到当前view之前activity收到此消息。在这种情况下,您需要覆盖onKeyDown也适用于当前视图。

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

覆盖 Android 上的物理菜单按钮 的相关文章

  • Android 4.4.2 - java.lang.RuntimeException:执行未恢复的活动停止

    我在 4 4 2 设备上遇到此异常 在 Android 4 3 或更低版本的设备上无法重现 设置是我有一个家庭活动 支持的子类ActionBarActivity 家庭活动检查布尔标志 如果为真 则启动启动画面活动 是的 理想情况下启动画面出
  • 单击弹出菜单时为什么导航栏出现在全屏应用程序中

    我有一个全屏应用程序 MainActivity java public class MainActivity extends AppCompatActivity TargetApi Build VERSION CODES KITKAT pr
  • Android Studio 3.0.0 不允许 DOCTYPE

    升级到Android Studio 3 0 0 同步并更新gradle插件 出现以下错误 Error DOCTYPE not allowed if function http apache org xml features disallow
  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • 如何在 Android 中使用 Assets 中预加载的 SQLite 数据库

    我想用preloaded database在我的应用程序中意味着尝试在安装 apk 时获取数据库 以便可以使用已保存在其中的数据 我复制了 成分 db 文件位于资产文件夹中 并使用以下代码 但这会出现错误 从资源文件复制数据库时出现问题 我
  • GridView 中多次调用 getView()

    我的 Activity 由包含 40 多个元素的 GridView 组成 开始活动后 用户最多可以看到 15 个项目 3 行 每行 5 个项目 我在 getView 正文中编写传递给获取 View 的 LogCat 编号 Log i get
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • 在 Android 中长按时从操作模式中删除后退/主页按钮

    我已经在里面长按实现了上下文操作模式recycler view 为此我打电话给ActionModeCallback从创建动作模式开始 创建动作模式时 默认显示后退箭头 检查如下 单击后退箭头 操作模式将关闭 现在我想要hide or rem
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • Android Studio更新到1.5后Gradle错误

    今天我已将 Android Studio 更新到 v1 5 我的 libgdx 项目在这次更新之前运行良好 现在我收到此错误消息 Error Unable to load class org gradle mvn3 org sonatype
  • 如何防止布局的方向改变,而不是整个屏幕/活动的方向改变

    我需要一个子布局 可以是任何布局 例如FrameLayout or RelativeLayout 忽略方向变化并始终保持横向 但不是它的父级或任何其他兄弟布局 视图 它们应该相应地改变它们的方向 因此 我不能使用setRequestedOr
  • Firebase ANR - 甚至不使用 firebase

    随着 GMS 的最新更新 引入了新的 ANR 如果您退出应用程序 然后返回 则 ANR 就会初始化 线程跟踪似乎指向 Firebase 但我什至从未开始使用 Firebase 我猜它一定是新的 GMS 包的一部分 06 11 00 34 0
  • 如何在 Android NDK 中创建新的 NativeWindow 而无需 Android 操作系统源代码?

    我想编译一个 Android OpenGL 控制台应用程序 您可以直接从控制台启动 Android x86 运行 或者从 Android x86 GUI 内的 Android 终端应用程序运行 这个帖子 如何在 Android NDK 中创
  • Vimeo 视频在 Android 6 设备上停止播放

    我正在尝试在我的应用程序中播放 Vimeo 的视频 问题是在 Android 6 设备上 视频会在一定时间后停止播放 在 API 较低的设备上一切正常 时间取决于质量 对于下面提供的网址的视频 播放一定分钟 1 到 3 视频质量有多低 播放
  • 在 Honeycomb Android 3.0 中显示 Action Bar 菜单项的图标

    我正在使用 Honeycomb android 3 0 开发 Android 应用程序 我正在尝试在 Action Bar 中显示菜单 菜单有一个图标和标题 当我们单击菜单项时 它会以下拉列表的形式显示其项目 它是下拉列表中带有项目名称但不
  • Android AutoCompleteTextView 带芯片

    我不确定我是否使用了正确的词语来描述此 UI 功能 但我已附上我希望在我的应用程序中实现的目标的快照 它由 Go SMS 使用 用户在编辑文本中键入联系人 在用户从完成下拉列表中选择联系人后 该联系人将被插入到编辑文本中 如附图所示 编辑文
  • 在android中跟踪FTP上传数据?

    我有一个运行 Android 的 FTP 系统 但我希望能够在上传时跟踪字节 这样我就可以在上传过程中更新进度条 安卓可以实现这个功能吗 现在 我正在使用org apache common net ftp我正在使用的代码如下 另外 我在 A
  • Android:解析 XML 数据的最佳解析器 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在开发一个应用程序 其中我第一次要解析来自远程服务器的 xml 文件中的数据 但我无法选择哪个解析器是有效的或最适合解析的 因为我知道主要有
  • 在没有 Wifi 的情况下获取 Android 设备的 MAC 地址

    如何获取没有 Wifi 接口的 Android 设备 例如 Android 模拟器 的网络接口的 MAC 地址 通过WifiManager返回获取的WifiInfonull EDIT 更清楚地说 我必须与本地网络上的现有网络协议 不是我设计

随机推荐

  • Flutter 如何改变ListView中鼠标滚轮的滚动速度?

    我是初学者 我正在 Windows 下编写一个关于 Flutter 的应用程序 问题是 ListView 中的文本通过鼠标剪辑滚动得太慢 我尝试覆盖 ScrollPhysics 但没有成功 请提供一种改变滚动速度的工作方法 对于找到这篇文章
  • 通过Java JDBC连接Hive

    这里有一个问题从 java 连接到 Hive但我的是不同的 我的配置单元在 machine1 上运行 我需要使用在 machine2 上运行的 Java 服务器传递一些查询 据我了解 Hive 有一个 JDBC 接口 用于接收远程查询 我从
  • JSX 元素类型没有任何构造或调用签名。打字稿

    In case compose使用时出现错误JSX element type Option does not have any construct or call signatures redux 版本 3 7 2 import as Re
  • 网站图标 - 最佳实践 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 更新的问题 2022 年创建网站图标时的最佳实践是什么 这是 2013 年提出的原始问题 我正在尝试了解网站图标 触摸图标以及现在的平铺图标所需的所有这些不同尺寸和格式 我读过这
  • 如何在 iOS 7 中恢复 UIButton 边框?

    我建立了一个旧项目Xcode 5 中的 iOS SDK 6 1 然而 当应用程序在运行 iOS 7 的 iPhone 上运行时 UIbutton 是无边框的 我已经检查过 xib是 构建 gt 项目部署目标 5 0 如何配置 Xcode 5
  • 如何从 Azure Blob 存储查看图像而不是下载图像?

    好的 我正在使用 Node js 和 Azure Blob 存储来处理一些文件上传 当一个人上传图像时 我想向他们显示图像的缩略图 上传效果很好 我将其存储在我的 blob 中 我使用了这个很好的链接 使用 Azure SDK for No
  • 未经许可的地理定位[重复]

    这个问题在这里已经有答案了 我注意到现代基于 html5 的地理定位总是询问用户 您想与此网站共享您的位置吗 这很好 但我知道还有其他途径可以尝试确定大致的地理位置 而无需请求此许可 如果我记得的话 这些服务使用 IP 数据库来尝试跟踪地理
  • 我可以将 socket.io 事件侦听器分离到不同的模块中吗?

    我正在处理超过 15 个不同的套接字事件 我想在与这些事件相关的模块中管理某些 socket io 事件 例如 我想让一个名为 login js 的文件处理login套接字事件 名为 register js 的文件处理注册套接字事件 索引
  • 根据 Django 管理中的父模型预填充内联

    我有两个模型 Event and Series 其中每个事件都属于一个系列 大多数时候 一个事件start time与其系列相同default time 这是模型的精简版本 models py class Series models Mod
  • 有哪些好的 WCF/Web 服务安全读物? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 最近 我做了很多与 WCF Web 服务和分布式计算相关的学习和工作 但大多数安全概念都超出了我的理解范围 传输安全 消息安全 加密 证书等 我了解
  • Arraylists 的 Arraylist 的通用类型

    在正常的数组列表初始化中 我们过去定义泛型类型如下 List
  • 使用 Laravel 从 Web 服务器流式传输 Amazon S3 对象

    在我使用 laravel 5 1 构建的 Web 应用程序中 用户可以上传我存储在 Amazon S3 中的一些敏感文件 后来我想要用户经许可下载此文件 由于我希望进行此身份验证检查 因此我无法使用传统方法通过直接链接到 S3 中的文件来下
  • jQuery 从文本区域转义 HTML

    我想将 HTML 标签转义为实体名称 从textarea并将结果放入第二个textarea这样
  • 如何设置 selenium 3.0,在 c# 中出现错误“The geckodriver.exe 文件不存在...”

    将 Visual Studio 中的 selenium 更新为 3 0 将 Firefox 更新为 47 0 现在当我尝试使用本地 Webdriver 模式时收到此错误 当前目录或 PATH 环境变量上的目录中不存在 geckodriver
  • 使用同一 Visual Studio 2005 解决方案的不同版本/分支

    这是使用 VS2005 的可用性问题 我有从版本控制中签出的同一个 Visual Studio 2005 解决方案的不同分支 解决方案和项目文件也受到版本控制 在我的开发工作站上 有时我会在不同版本或分支上打开多个 Visual Studi
  • 打破嵌套循环和主循环[重复]

    这个问题在这里已经有答案了 我有以下代码 int x 100 Or some other value while x gt 0 for int i 5 i gt 0 i x x 2 if x 0 break 然而 这只会破坏 for 循环
  • Windows 的 Curses 替代方案 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 python 有没有可以在 Windows 中使用curses 模块的替代方案 我查了一下 python 文档 但其中提到它可以在 unix 中使用
  • ExecutorService 的 shutdown() 不会等到所有线程都完成

    我有一个代码 其中 4 个线程同时运行 我想等到这 4 个线程全部完成 只有在那之后才能继续应用程序流程 我尝试了两种方法 Thread join 此方法按预期工作 后面的代码join 仅在所有线程完成后才执行 ExecutorServic
  • Laravel htaccess 问题

    我正在尝试建立一个网站 该网站在实时开发服务器上运行得非常好 我们一直用该服务器向客户端展示该网站 这是来自实时开发的 htaccess 工作正常
  • 覆盖 Android 上的物理菜单按钮

    我希望 Android 设备上的菜单键打开一个对话框 而不是在我的应用程序运行时打开菜单 我尝试将其编码为onCreateOptionsMenu Menu menu 但它只在我第一次按下菜单按钮时起作用 我可以用其他方式来做吗 您可以通过在