Android Studio:只有使用 TextChangedListener 的字母时才接受输入

Android Studio: only accept input if its a letter using TextChangedListener

我正在使用 Android Studio 开发一个应用程序,我想在其中获取用户的输入并在以后使用它。

如果是字母,我只想接受此输入。如果用户输入一个数字,我想向用户显示一条错误消息,而不是接受输入。

这是我目前正在处理的代码,目前它接受用户输入的任何输入:

EditText input;

input.setText("");

input = findViewById(R.id.input);

input.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                }

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

                    if (charSequence.length() != 0) {
                        useInputLaterOn(charSequence.charAt(0));
                    }
                }

                @Override
                public void afterTextChanged(Editable editable) {
                }

            });

使用此代码检查字母,如果不是字母则显示错误

input.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                if (charSequence.length() == 0) return;// No need to check because there's no text
                Pattern pattern = Pattern.compile("^[a-zA-Z ]+$");
                Matcher matcher = pattern.matcher(charSequence.toString());
                if (!matcher.matches()) {
                    // It's not a letter
                    // Remove last entered character and show error message
                    input.setText(charSequence.toString().substring(0, charSequence.toString().length() - 1));
                    input.setSelection(input.getText().toString().length());
                    input.setError("Not a letter");
                } else {
                    // It's a letter do something
                }
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });