Изменение метки и работа кнопок на клавиатуре - PullRequest
0 голосов
/ 04 февраля 2019

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

     @Override
 public void onKey(int primaryCode, int[] keyCodes) {
     InputConnection inputConnection = getCurrentInputConnection();
     if (inputConnection != null) {
         switch(primaryCode) {
             case Keyboard.KEYCODE_DELETE :
                 CharSequence selectedText = inputConnection.getSelectedText(0);

                 if (TextUtils.isEmpty(selectedText)) {
                     inputConnection.deleteSurroundingText(1, 0);
                 } else {
                     inputConnection.commitText("", 1);
                 }
             case Keyboard.KEYCODE_SHIFT:
                 caps = !caps;
                 keyboard.setShifted(caps);
                 keyboardView.invalidateAllKeys();
                 break;
             case Keyboard.KEYCODE_DONE:
                 inputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));

                 break;
             default :
                 char code = (char) primaryCode;
                 if(Character.isLetter(code) && caps){
                     code = Character.toUpperCase(code);
                 }
                 inputConnection.commitText(String.valueOf(code), 1);

         }
     }

 }

onCreateInputView, как этот метод

     private KeyboardView keyboardView;
 private Keyboard keyboard;

 private boolean caps = false;

 @Override
 public View onCreateInputView() {
     keyboardView = (KeyboardView) getLayoutInflater().inflate(R.layout.keyboard_view, null);
     keyboard = new Keyboard(this, R.xml.keys_layout);
     keyboardView.setKeyboard(keyboard);
     keyboardView.setOnKeyboardActionListener(this);
     return keyboardView;
 }

как мне решить мою проблему, кто-нибудь может предложить способ ??

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