【问题标题】:Android. Backspace/delete key not functioning.安卓。退格/删除键不起作用。
【发布时间】:2012-02-12 03:41:00
【问题描述】:

设置 onKeyListener 后退格/删除键不起作用。

我在我的 EditText 上设置了一个 OnKeyListener。然后某些键的默认操作无法正常工作。像删除/退格。然后我通过操作里面的字符串改为使用我自己的文本删除功能。但这似乎相当复杂。

我必须进行选择,制作子字符串等等。是否有其他解决方案可以使密钥正常运行?

【问题讨论】:

  • 您使用哪个 Android api 和设备进行测试。这通常不会发生。
  • android 2.2 和三星银河
  • 检查你的方法的返回值
  • 你的意思是什么方法?开关键?我已经设置好了。

标签: android android-edittext keylistener


【解决方案1】:

我遇到了您面临的类似问题,但我设法偶然发现了解决方案。显然,我已经 setOnKeyListener 'return true'。在我将其更改为“返回 false”后,手机键盘可以完美地使用退格键在 edittext 上再次正常运行。希望这会有所帮助:

解决方案:您现有的 onkeylistener 代码之一包含“return true”。通过将现有代码从'return true'设置为'return false'来纠正它

.setOnKeyListener(new View.OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {
  ...
  return false;
                }
        });

【讨论】:

    【解决方案2】:

    我也有这个问题,我通过在 onKeyListener 函数中返回 false 来解决它。这应该对其他键执行正常操作。

    .setOnKeyListener(new DialogInterface.OnKeyListener() 
    {
         @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) 
         {
            //your workarounds;
            return false;
         }
    })
    

    【讨论】:

      【解决方案3】:

      有两个已知问题会影响 Android 随附的默认 (LatinIME) Google 键盘的 KEYCODE_DEL:问题 42904 和 62306。

      我对此进行了研究,并设计了一种解决方法,使用代码似乎可以解决这两个问题。可以在此处找到该解决方法:

      Android - cannot capture backspace/delete press in soft. keyboard

      【讨论】:

        【解决方案4】:

        这取决于您使用的 IME。 有些输入法实现删除功能,不发送KEYCODE_DEL。 尝试使用默认输入法以外的其他输入法。

        例如,如果您按 DEL 按钮的时间足够长,某些 IME 会删除编辑框中的所有文本。 这不能通过 KEYCODE_DEL 完成。

        【讨论】:

        • 确实,我必须编写自己的文本删除方法来处理用户使用的任何 IME。
        • @MRijalulKahfi 你有如何创建自己的文本删除方法的例子吗?
        猜你喜欢
        • 1970-01-01
        • 2015-11-10
        • 2015-01-03
        • 2012-02-05
        • 1970-01-01
        • 2017-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多