Пользовательская клавиатура не может писать в TextView - PullRequest
0 голосов
/ 15 мая 2019

Я новичок в Android Studio, но сейчас я пытаюсь создать пользовательскую клавиатуру в приложении (не в служебной клавиатуре), мне удается это сделать с помощью сетевых ресурсов, но когда я пытаюсь переключиться с editText на TextViewмой ввод с клавиатуры просто не может записать в TextView, есть ли другой метод для TextView?

Я пробовал что-то вроде textView.setText (InputType.TYPE_CLASS_TEXT);Приложение просто заставило остановиться в этой ситуации.

Это editText, который отлично работает.

EditText editText = (EditText) findViewById(R.id.editText);  
myKeyboard keyboard = (myKeyboard) findViewById(R.id.keyboard);

editText.setRawInputType(InputType.TYPE_CLASS_TEXT);
editText.setTextIsSelectable(true);

InputConnection inputConnection = editText.onCreateInputConnection(newEditorInfo());
keyboard.setInputConnection(inputConnection);

Код ниже TextView не отвечает при нажатии на клавиатуре.

TextView textView = (TextView) findViewById(R.id.textView);  
myKeyboard keyboard = (myKeyboard) findViewById(R.id.keyboard);

textView.setRawInputType(InputType.TYPE_CLASS_TEXT);
textView.setTextIsSelectable(true);

Это код, который япопробовал, но приложение принудительно остановилось.

TextView textView = (TextView) findViewById(R.id.textView);
myKeyboard keyboard = (myKeyboard) findViewById(R.id.keyboard);

textView.setText(InputType.TYPE_CLASS_TEXT);

К вашему сведению, сетевой ресурс, на который я ссылался, находится по адресу Как создать пользовательскую клавиатуру Android? Заранее спасибо.

1 Ответ

0 голосов
/ 24 мая 2019

Это альтернативный способ достижения результата. Добавьте TextWatcher к вашему editText, и синхронизировать его с вашим TextView. Код показывает как показано ниже: -

        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                TextView textView = findViewById(R.id.textView);
                textView.setText(s);
            }

            @Override
            public void afterTextChanged(Editable s) {
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...