当前位置: 首页 > 知识库问答 >
问题:

Android输入法“输入”按钮问题

程瑞
2023-03-14

我创建了一个自定义输入法,只是键盘不是一个完整的带有editText的IME,但由于某些原因,我的“回车”按钮的性能与内置键盘不同。在某些应用程序上,例如Facebook的应用程序,在“密码”字段后面有一个“登录”按钮或类似的按钮。当我使用内置键盘输入密码并按下“回车”按钮时,它会开始登录过程,但我的键盘不会这样做。我尝试使用以下方式以不同方式发送关键事件:

ic.send关键事件(新的关键事件。ACTION_DOWN,关键事件。KEYCODE_ENTER));

SendDownUpKeyEvents(KeyEvents.KEYCODE_ENTER);

但两者似乎都没有相同的效果。为了清楚起见;这两段代码都满足其他“输入”功能,如将文本提交到文本或开始新行。有人能告诉我我在这里错过了什么吗?

共有2个答案

陆英毅
2023-03-14

请参考下面的示例来触发Key事件。KEYCODE_ENTER时'换行'https://cs.android.com/android/platform/superproject/ /master:开发/样本/SoftKeyboard/src/com/例如/android/软键盘/SoftKeyboard.java; l=521; drc=master

private void keyDownUp(int keyEventCode) {
    getCurrentInputConnection().sendKeyEvent(
            new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));
    getCurrentInputConnection().sendKeyEvent(
            new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));
}

private void sendKey(int keyCode) {
    switch (keyCode) {
        case '\n':
            keyDownUp(KeyEvent.KEYCODE_ENTER);
            break;
        default:
            if (keyCode >= '0' && keyCode <= '9') {
                keyDownUp(keyCode - '0' + KeyEvent.KEYCODE_0);
            } else {
                getCurrentInputConnection().commitText(String.valueOf((char) keyCode), 1);
            }
            break;
    }
}
贲功
2023-03-14

尝试sendDefaultEditorAction(true)方法。对于我在AndroidTV上的案例,此代码运行良好:

class MyInputMethodService : InputMethodService() {
    
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
        if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
            sendDefaultEditorAction(true)
            return true
        }
        return super.onKeyDown(keyCode, event)
    }

}
 类似资料:
  • 本文向大家介绍CSS样式输入类型按钮,包括了CSS样式输入类型按钮的使用技巧和注意事项,需要的朋友参考一下 输入类型按钮可以是提交按钮或重置按钮。使用CSS,我们可以设置网页上任何按钮的样式。 您可以尝试运行以下代码来设置输入类型按钮的样式: 示例

  • 本文向大家介绍Android 自定义EditText输入框带清空按钮,包括了Android 自定义EditText输入框带清空按钮的使用技巧和注意事项,需要的朋友参考一下 Android 自定义EditText输入框带清空按钮 当用户输入字符后 EditText会自动在输入框的内部右侧出现删除按钮 重写EditText达到简化布局的效果 效果图: 继承EditText XML布局: XML中的属性

  • 问题内容: 我使用CSS在网站上设置输入按钮的样式,但在IOS设备上,样式已由Mac的默认按钮取代。是否可以为iOS的按钮设置样式,或者制作类似于提交按钮的超链接? 问题答案: 您可能正在寻找 Safari CSS注释 Mozilla开发人员网络的

  • 问题内容: 所以我有一个像这样的按钮: 我要如何禁用和启用它?我已经尝试过,但是将其重新启用是一个问题。我尝试将其设置回false,但是没有启用它。 问题答案: 使用JavaScript 禁用HTML按钮 启用html按钮 使用jQuery jQuery 1.6之前的所有版本 禁用HTML按钮 启用html按钮 1.6之后的所有版本的jQuery 禁用HTML按钮 启用html按钮 PS更新了基于

  • 输入法是一种将输入设备输入的数据翻译成字符的方法,这个方法可以表示编码方案和输入平台两种含义,本文将输入法作为输入平台来讲解 LCUI 对它的支持方案。 LCUI 的输入法引擎负责的工作很简单:记录支持的输入法列表,在有按键输入时调用当前激活的输入法驱动进行处理,然后转换成 TEXTINPUT 事件,让 TextEdit 等具有文本输入支持的组件接收输入法输入的文本。 添加输入法 LCUI 将输入

  • 我试图重新大小的视频不在同一个目录的PHP exec代码,这是我的ffmpeg代码: