SetText в TextWatcher

У меня проблема с методом setText(). Когда я набираю числа на цифровой клавиатуре после setText, цифровая клавиатура автоматически меняется на клавиатуру символов. Как я могу отменить это действие?

textWatcher = new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {}

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

            @Override
            public void afterTextChanged(Editable s) {
                editText.removeTextChangedListener(textWatcher);

                String group = s.toString().toUpperCase();

                editText.setText(group);    
                editText.setSelection(editText.getText().length());
                editText.addTextChangedListener(textWatcher);
            }
        };

person AskQuestion    schedule 08.09.2014    source источник
comment
Просто чтобы добавить это в функцию afterTextChanged. editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);   -  person Mohsin    schedule 08.09.2014


Ответы (3)


У меня такая же проблема. Вы должны использовать RelativeLayout и TextView с вашим EditText

А в afterTextChanged используйте setText для textView. Здесь подробнее.

person Alexander Goncharenko    schedule 08.09.2014

Напишите это

editText.setRawInputType(TYPE_CLASS_NUMBER | TYPE_NUMBER_VARIATION_NORMAL);

после

editText.addTextChangedListener(textWatcher);
person Avinash Kumar Pankaj    schedule 08.09.2014
comment
после ввода первого символа он переключается на цифровую клавиатуру и не позволяет переключиться обратно на символы - person AskQuestion; 08.09.2014
comment
Да. Он меняет TYPE_CLASS_TEXT на TYPE_CLASS_NUMBERS, и я не могу переключиться обратно. Мне просто нужно использовать клавиатуру по умолчанию, но когда я ввожу какой-либо символ с клавиатуры ?123, метод setText() переключается обратно на «ABC», и я пытаюсь решить эту проблему. - person AskQuestion; 08.09.2014

В вашем xml-файле в теге EditText добавьте

android:inputType="number"

отметьте как ответ, если это решение помогло вам

person Shreenivas Chikati    schedule 08.09.2014
comment
Мне нужно ввести символы и цифры. Но когда я пытаюсь набрать номер, он автоматически меняется на символьную клавиатуру с цифровой. - person AskQuestion; 08.09.2014