gpt4 book ai didi

java - Android:KeyEvent.KEYCODE_X 显示为 '8'

转载 作者:行者123 更新时间:2023-11-30 03:20:50 24 4
gpt4 key购买 nike

我为一个应用程序实现了自己的自定义键盘,该应用程序只需将带有文本的按钮映射到一个键,然后将其发送到 EditText。

按下按钮时,我最终会调用此方法,传入要添加字符的 EditText 和要追加的字符。

public void keypadPress(EditText etInput, char character) {
etInput.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, getKeyEvent(character)));
}

getKeyEvent 看起来像这样:

public static int getKeyEvent(char c) {
switch (c) {
case '0':
return KeyEvent.KEYCODE_0;
case '1':
return KeyEvent.KEYCODE_1;
case '2':
return KeyEvent.KEYCODE_2;
case '3':
return KeyEvent.KEYCODE_3;
case '4':
return KeyEvent.KEYCODE_4;
case '5':
return KeyEvent.KEYCODE_5;
case '6':
return KeyEvent.KEYCODE_6;
case '7':
return KeyEvent.KEYCODE_7;
case '8':
return KeyEvent.KEYCODE_8;
case '9':
return KeyEvent.KEYCODE_9;
case '-':
return KeyEvent.KEYCODE_MINUS;
case '.':
return KeyEvent.KEYCODE_PERIOD;
case ',':
return KeyEvent.KEYCODE_COMMA;
case 'x':
return KeyEvent.KEYCODE_X;
default:
return -1;
}
}

EditText 类型输入设置为“数字”。此外,这在 Android 4.0+ 中完全完美,但是每当我单击“x”按钮时,它都会映射到 API 8(可能更低)上的“8”。我调试了它,它返回 KeyEvent.KEYCODE_X(或 52),但 EditText 中显示的是数字 8。我完全一无所知,希望能提供任何形式的帮助。

此外,我第一次使用此键盘实现打开屏幕时,每当我第一次单击按钮时,都会收到此警告...

10-04 01:16:29.804: W/KeyCharacterMap(8716): Can't open keycharmap file
10-04 01:16:29.804: W/KeyCharacterMap(8716): Error loading keycharmap file '/system/usr/keychars/touchscreen-keypad.kcm.bin'. hw.keyboards.0.devname='touchscreen-keypad'
10-04 01:16:29.804: W/KeyCharacterMap(8716): Using default keymap: /system/usr/keychars/qwerty.kcm.bin

然后就没有警告了。

最佳答案

找到答案:

我还将 digits 属性设置为“0123456789,.-x”,即使我尝试将 inputType 更改为“text”,也会导致它将 KEYCODE_X 映射到“8”。如果 editText 设置了 inputType 数字或 digits 属性,则即使您手动分派(dispatch)事件,不是数字的键码最终也会不正确。据我所知,这只发生在 API 8 及以下版本。在 Android 4.0+ 上,即使 inputType 是“数字”,您也可以允许使用字母。

关于java - Android:KeyEvent.KEYCODE_X 显示为 '8',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19174779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com