Как преобразовать код клавиши в символ или строку?

Как преобразовать keycode в char или string??

Вот пример кода:

public boolean onKey(View v, int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    //Log.d("EditText", "It's Working...!" + event.getAction());
    if (event.getAction() == 0) {
        switch (v.getId()) {
        case R.id.editText1:
            Log.d("EditText", "In editText1");
            if (text1.length() == 3)
            {
                text2.setText();
                text2.requestFocus();

            }
            break;

        case R.id.editText2:
            Log.d("EditText", "In editText2");
            if (text2.length() == 0)
                text1.requestFocus();
            break;
        }
    }

    return false;
}

person ram    schedule 04.07.2011    source источник


Ответы (7)


Используйте event.getNumber().

person Dave    schedule 04.07.2011

Если у вас нет объекта KeyEvent, вы можете использовать его в коде клавиши:

public void onKey(int primaryCode, int[] keyCodes) {
     char c = Character.toChars(primaryCode)[0];
}
person Raffy    schedule 27.11.2013

Ответ Tod почти завершен, но когда вы хотите установить текст edittext с этим кодом события, вы должны добавить небольшую вещь:

sample_et.setText((char)event.getUnicodeChar()+"");
person saleh sereshki    schedule 26.06.2018

Если вы хотите отправить ключ из одного элемента управления в другой (например, из RecylerView в EditText внутри него), вы можете использовать это:

editText.dispatchKeyEvent(KeyEvent(0, 0, KeyEvent.ACTION_DOWN, keyCode, 0))
editText.dispatchKeyEvent(KeyEvent(0, 0, KeyEvent.ACTION_UP, keyCode, 0))
person CoolMind    schedule 01.07.2021

Попробуй это..

String s="";

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    EditText t=(EditText)v;
    s=t.getText();  
    return false;
}
person GaneshKumar    schedule 06.12.2012

Использовать

String.fromCharCode();

String.fromCharCode(65,66,67) возвращает ABC.

См. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode .

person kipid    schedule 24.06.2014

person    schedule
comment
Почему я получил ��, когда ввел ключевое событие 67 (KEYCODE_DEL)? - person Corey; 16.04.2018
comment
если вы получите такой вывод ��. Отфильтруйте его таким образом, если (keyCode != 59) - person Azizi Musa; 02.07.2019
comment
Обратите внимание, что для этого вам не нужно иметь ссылку KeyEvent. Вы можете преобразовать простое значение keycode int, используя KeyCharacterMap. Это в основном то, что делает getUnicodeChar(). - person Peter; 28.09.2020