【问题标题】:How to get a keyboard code for an Android project?如何获取 Android 项目的键盘代码?
【发布时间】:2017-03-29 17:39:35
【问题描述】:

我正在尝试检查以下情况:

  keyCode = event.getKeyCode();
  Log.e("key",keyCode+"");
    if (keyCode == KeyEvent.KEYCODE_DEL && event.getAction() == KeyEvent.ACTION_DOWN)
    //logic

在日志窗口中,'keyCode' 没有得到任何键盘代码,除了来自 KEYCODE_DEL 的值为 67 但只有在 EditText 为空时才这样做!

    editTextPrincipal.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            keyCode = event.getKeyCode();
            Log.e("key",keyCode+"");
            if (keyCode == KeyEvent.KEYCODE_DEL && event.getAction() == KeyEvent.ACTION_DOWN){
                usuarioDeletouCaracter = true;
                return usuarioDeletouCaracter;
            }
            return usuarioDeletouCaracter;

        }
    });

    editTextPrincipal.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!usuarioDeletouCaracter){
                editTextPrincipal.addTextChangedListener(textWatcher);
            }else{
                Toast.makeText(getApplicationContext(), "O usuario apagou", Toast.LENGTH_SHORT).show();
            }
        }
    });

无论在键盘上的哪个键被按下,日志窗口上的键码都应该返回她的值,但这不会发生 =\

【问题讨论】:

    标签: android logging keyboard key hardware


    【解决方案1】:

    软键盘几乎从不生成键码。要么使用 TextWatcher,要么你必须重写 InputConnection 对象。

    【讨论】:

    • 我已经读过你之前说过的这个,但我没有得到任何东西:我正在使用我的安卓手机提供的主键盘,它是带有原始 ROM 的 Moto G3。
    • 没关系。它很可能不会发送密钥代码。我不知道特定型号的主键盘是什么,但我可以告诉你,谷歌的 LatinIME(最有可能的答案)不知道。
    【解决方案2】:

    试试这个

    editTextPrincipal.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKeyDown(View v, int keyCode, KeyEvent event) {
    Log.e("key",keyCode);
    if (keyCode == KeyEvent.KEYCODE_DEL){
                    usuarioDeletouCaracter = true;
                    return usuarioDeletouCaracter;
                }
         return usuarioDeletouCaracter;
    }
    });
    

    参考https://developer.android.com/training/keyboard-input/commands.html

    【讨论】:

    • 将不起作用。我不能将实例内的函数 onkeyDown 调用到类 setOnKeyListener
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2013-01-21
    • 2012-07-01
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多