Как изменить фокус с поля редактирования WhatsApp на поле редактирования, которое я реализовал внутри клавиатуры? - PullRequest
0 голосов
/ 31 мая 2019

Я создал пользовательскую клавиатуру для приложения стикеров. Который имеет функцию поиска стикеров и обмена на WhatsApp, Facebook и т. Д. Но моя проблема в том, что я не могу изменить фокус с поля редактирования WhatsApp на пользовательский текст редактирования на моей клавиатуре. В настоящее время, когда я пытаюсь коснуться редактирования текста, реализованного на клавиатуре, и написать какой-то текст, он автоматически редактируется по умолчанию в поле редактирования WhatsApp, а не в пользовательском тексте редактирования.

Любое решение ...

это мой код ..

keyboard_view.setOnKeyboardActionListener(new KeyboardView.OnKeyboardActionListener() {
        @Override
        public void onPress(int i) {
        }

        @Override
        public void onRelease(int i) {

        }

        @Override
        public void onKey(int primaryCode, int[] ints) {
            InputConnection ic = getCurrentInputConnection();
            playClick(primaryCode);
            switch (primaryCode) {
                case Keyboard.KEYCODE_DELETE:
                    getCurrentInputConnection().sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL));
                    break;
                case Keyboard.KEYCODE_SHIFT:
                    caps = !caps;
                    keyboard.setShifted(caps);
                    keyboard_view.invalidateAllKeys();
                    break;
                case android.inputmethodservice.Keyboard.KEYCODE_DONE:
                    if (isSearched){
                        searchQuery();
                        frame_contain.setVisibility(View.GONE);
                        frame_container_search.setVisibility(View.VISIBLE);
                        keyboard_view.setVisibility(View.GONE);
                        search_view_items.setVisibility(View.VISIBLE);
                        callAdapterForSearchedStickers();
                        isSearched = false;
                        break;
                    }else {
                        frame_contain.setVisibility(View.GONE);
                        frame_container_search.setVisibility(View.GONE);
                        keyboard_view.setVisibility(View.VISIBLE);
                        search_view_items.setVisibility(View.GONE);
                        ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));
                        ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER));
                        break;
                    }


                case Keyboard.KEYCODE_MODE_CHANGE:
                    if (KeyboardService.afroemojiEnabled(getApplicationContext())) {
                        InputMethodManager imm = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                        imm.showInputMethodPicker();
                    } else {
                        startActivity(new Intent("android.settings.INPUT_METHOD_SETTINGS"));
                    }
                    break;
                case -100:
                    mainBoard.setBackgroundColor(Color.parseColor("#ffffff"));
                    ic.deleteSurroundingText(1, 0);
                    packNameLabel.setVisibility(View.VISIBLE);

                    stickerView.setVisibility(View.VISIBLE);
                    keyboard_view.setVisibility(View.GONE);
                    frame_contain.setVisibility(View.VISIBLE);

                    share_layout.setVisibility(View.VISIBLE);
                    break;
                case 82:

                    keyboard_view.setKeyboard(numerice_keyboared);
                    keyboard_view.setPreviewEnabled(false);
                    break;
                case 23:

                    keyboard_view.setKeyboard(keyboard);
                    keyboard_view.setPreviewEnabled(false);
                    break;
                default:
                    char code = (char) primaryCode;
                    if (Character.isLetter(code) && caps) {
                        code = Character.toUpperCase(code);
                    }
                    ic.commitText(String.valueOf(code), 1);
            }
        }

        @Override
        public void onText(CharSequence charSequence) {

        }

        @Override
        public void swipeLeft() {

        }

        @Override
        public void swipeRight() {

        }

        @Override
        public void swipeDown() {

        }

        @Override
        public void swipeUp() {

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