在 EditText 中阻止物理键盘输入

Hei*_*elo 2 hardware keyboard android input android-edittext

我有一个 EditText 不允许用户通过键盘(软或硬)输入任何内容。这个 EditText 应该只允许用户通过应用程序在屏幕上显示的键(按钮)输入一些东西。我禁用了软键盘,但找不到禁用硬件键盘输入的方法。这种通过硬件键盘的输入可以使用配置为允许通过硬件键盘输入的模拟器来完成。所以,我的问题是,如何在 EditText 中通过物理键盘阻止输入?谢谢!

Hei*_*elo 5

终于拿到了!
代码:

editText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)

说明:
返回 true 将告诉侦听器我已经处理了硬件键盘输入。基于 Android 文档(http://developer.android.com/reference/android/view/View.OnKeyListener.html

View.OnKeyListener:当硬件按键事件被分派到这个视图时要调用的回调的接口定义。回调将在键事件提供给视图之前被调用。这仅对硬件键盘有用;软件输入法没有义务触发这个监听器。

onKey(View v, int keyCode, KeyEvent event) 在将硬件密钥分派到视图时调用。

  • 不适合我。此解决方案也忽略了来自虚拟键盘的数字符号。需要返回`!return event.getDevice().isVirtual()` - 那只会忽略硬件键盘。 (2认同)