addTextChangedListener не работает для пробела или возврата и т. д. - PullRequest
0 голосов
/ 26 апреля 2019

Я пишу приложение для Android, которое отправляет ваши входы на компьютер через программирование сокетов. Я могу отправить все символы, которые вы пишете в текстовой области, такие как «a», «1», «+» и т. Д., Но не могу отправить «пробел» или «возврат», когда я касаюсь пробела на клавиатуре с экрана, который он закрывает вниз приложение. Кто-нибудь может сказать, почему? или любые другие предложения функции, которые я могу использовать?

Это код, который я написал для ситуации.

etTextArea.addTextChangedListener(new TextWatcher() {
            int x =0;
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

                char characters ;
                MessageSender messageSender = new MessageSender();
                characters = etTextArea.getText().charAt(x);
                messageSender.execute(String.valueOf(characters));

                /*if (characters == ' ')
                {
                    Toast.makeText(KeyboardActivity.this, " space ", Toast.LENGTH_SHORT).show();
                }
                else{
                    messageSender.execute(String.valueOf(karakterler));
                }*/

            }

            @Override
            public void afterTextChanged(Editable editable) {
                x++;
            }
        });

Любая помощь была бы отличной, спасибо, ребята.

1 Ответ

0 голосов
/ 26 апреля 2019

Если текст изменился, он должен работать. Также для ключевых событий вы можете использовать, например:

view.setOnKeyListener { _, keyCode, event ->
            if (event.action == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK) {
                presenter.onBackClicked()
                return@setOnKeyListener true
            }
            return@setOnKeyListener false
        }

...