能不能让复选框和按钮触发OnKeyListener.onKey()?

人工智能 2026-07-09

我正在开发一个应用程序,其中包含多种表单和多个字段(如复选框、按钮和可编辑文本字段)。为了让用户也能够通过键盘的左右箭头在这些表单之间导航(即对 KeyEvent.KEYCODE_DPAD_LEFT → “跳到上一个字段”,对 KeyEvent.KEYCODE_DPAD_RIGHT → “跳到下一个字段”,以此类推),我为所有控件分配了相应的 OnKeyListener

这对 EditText-字段工作正常,但对 CheckBoxButton 就不行。后者不会触发 OnKeyListener(尽管已经分配了一个!)

是否有办法也为这些控件触发 OnKeyListener.onKey(...)-method?我是否遗漏了某个标志或设置?

解决方案

我用人工智能找到了原因:它的回答(意译,因为AI生成的内容不被允许直接引用):

按键事件仅来自真实的(即物理的)键盘,而不会来自触摸键盘。不过,可以通过选项 focusableInTouchMode 启用该功能。

于是我在我的复选框和按钮上添加了 android:focusableInTouchMode="true",确实奏效。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章