Не удается очистить текст редактирования после setText () - PullRequest
1 голос
/ 18 сентября 2011

это мой код, но проблема в том, что когда я хочу очистить некоторые символы, я не могу

TWL=new TextWatcher(){


            public void afterTextChanged(Editable s) {



            }


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


            }


            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {
                 name.removeTextChangedListener(this);//after this line you do the editing code


               name.setText(s+"-");
               name.setSelection(name.getText().length());



               name.addTextChangedListener(TWL); // you register again for listener callbacks

            }};
        name = (EditText)findViewById(R.id.editText1);
         name.addTextChangedListener(TWL);

1 Ответ

0 голосов
/ 21 мая 2013

У меня была довольно похожая проблема.У меня был EditText с OnKeyListener, но он не позволял мне удалять пробелы в тексте редактирования (я не слушал ни одного события «кнопка удаления»).Я понял, что не так, когда я попытался вернуть «false» в моем слушателе (событие не завершено).Не работает как шарм.Вы уверены, что у вас нет ключевого слушателя по этому поводу?В этом случае вы возвращаете false, когда вы «захватываете» событие?

Надеюсь, это поможет

((EditText)findViewById(R.id.main_nome)).setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
                //hide the keyboard
                InputMethodManager imm= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(findViewById(R.id.main_nome).getWindowToken(), 0);

                iniziaClicked(view);
                findViewById(R.id.loseFocus).requestFocus();
            }

            return false;
        }
});
...