addTextChangedListener不适用于空格或退格键等

时间:2019-04-26 10:13:25

标签: android sockets text touch addtextchangedlistener

我正在编写一个Android应用,该应用通过套接字编程将您的输入发送到PC。我可以发送您在文本区域中写入的所有字符,例如“ 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 :(得分:0)

如果文本已更改,它应该可以工作。另外,对于关键事件,您可以使用例如:

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