изменить физическую клавиатуру на Android программно (Android Studio) - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу изменить физическую раскладку клавиатуры на иврит при программном использовании клавиатуры. Прямо сейчас, когда я нажимаю на физической клавиатуре, он вводит английские символы. Я разрабатываю мое приложение для Android леденец и выше.

1 Ответ

0 голосов
/ 14 сентября 2018

ОК, после некоторых исследований я нашел решение этой проблемы - мне пришлось реализовать интерфейс KeyEvent.Callback и переопределить метод onKeyDown.Этот метод вводит мне код клавиши, который был нажат, и я должен перевести его на символ на языке, на котором я хочу написать. Вот как выглядит код:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    Toast.makeText(getApplicationContext(),"Keycode="+keyCode,Toast.LENGTH_LONG).show();
    handleKey('ש');
    return true;

}
public void handleKey(int keyCode)
{
    InputConnection inputConnection = getCurrentInputConnection();

    if (inputConnection != null) {

        switch(keyCode) {
            case Keyboard.KEYCODE_DELETE :
                CharSequence selectedText = inputConnection.getSelectedText(0);

                if (TextUtils.isEmpty(selectedText)) {
                    inputConnection.deleteSurroundingText(1, 0);
                } else {
                    inputConnection.commitText("", 1);
                }

                break;
            default :
                char code = (char) keyCode;
                inputConnection.commitText(String.valueOf(code), 1);
        }
    }

Здесь ссылка нагде я нашел это решение в документации Google: https://developer.android.com/training/keyboard-input/commands

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...