【问题标题】:listen to every key event on a soft keyboard android听软键盘android上的每个按键事件
【发布时间】:2014-10-08 20:22:18
【问题描述】:

我不想听软键盘事件。我试过 setOnKeyListener 和 setKeyListener ,它们都不起作用。有人知道怎么听软键盘吗?

【问题讨论】:

  • 你知道editText.addTextChangedListener()

标签: java android android-softkeyboard keylistener


【解决方案1】:

假设您在较新的 Android 版本上使用软键盘,那么来自 KeyEvent reference 的以下简介解释了获取软键事件的关键限制。

“由于软输入法可以使用多种创造性的文本输入方式,不能保证软键盘上的任何按键都会产生按键事件:这由 IME 自行决定, 实际上不鼓励发送此类事件。您永远不应该依赖接收 KeyEvents 来获取软输入法上的任何键。特别是,默认的软键盘永远不会向任何针对 Jelly Bean 或更高版本的应用程序发送任何键事件,并且只会向面向 Ice Cream Sandwich 或更早版本的应用程序发送某些按下删除键和返回键的事件。请注意,无论版本如何,其他软件输入法可能永远不会发送键事件。考虑使用编辑器操作,例如IME_ACTION_DONE 如果您需要与软件键盘进行特定交互,因为它可以让用户更清楚地了解您的应用程序对按键的反应。”

我认为使用TextWatcher 界面可能与您想要的一样接近。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。但是我所做的是使用了一个已经完成的库。检查此链接:androidLibrary

    只需按照步骤操作即可。导入库,然后使用提供给您的代码。

    您只需要导入以下依赖项:

    dependencies {
        compile 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.0.0'
    }
    

    并实现这个方法:

    KeyboardVisibilityEvent.setEventListener(
            getActivity(),
            new KeyboardVisibilityEventListener() {
                @Override
                public void onVisibilityChanged(boolean isOpen) {
                    // some code depending on keyboard visiblity status
                }
            });
    

    这是基本的主要功能。

    【讨论】:

    • 如果我错了,请纠正我,但您的回答如何解决问题?问题:“监听软键盘 android 上的每个按键事件”您的答案:“这是一个库,可以告诉您软键盘何时可见”
    猜你喜欢
    • 2011-07-24
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 2012-09-30
    • 2015-03-18
    相关资源
    最近更新 更多