Как отобразить не английский символ в onKey?
Собственно простой код. Я ставлю слушатель клавиатуры, получаю символ с помощью getUnicodeChar все хорошо пока я ввожу англиские буквы, когда ввожу русские или другие не английские, получаю вопросики кракозяблы, как их правильно то отобразить?
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
char unicodeChar = (char)keyEvent.getUnicodeChar();
testStr = String.valueOf(unicodeChar);
L.i("testStr="+testStr);
return false;
}
Ответы (1 шт):
Автор решения: woesss
→ Ссылка
Не знаю почему, но всё что за пределами ASCII клавиатура (по крайней мере AOSP) посылает не символами, а строками.
Получить можно так:
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
if (event.getAction() == KeyEvent.ACTION_MULTIPLE && keyCode == KeyEvent.KEYCODE_UNKNOWN) {
testStr = keyEvent.getCharacters();
} else {
char unicodeChar = (char)keyEvent.getUnicodeChar();
testStr = String.valueOf(unicodeChar);
}
L.i("testStr="+testStr);
return false;
}