Android - 在我使用方法onTextChanged中的方法setSelection时删除了EditText

时间:2014-11-10 10:51:45

标签: android android-edittext textwatcher

我正在尝试通过onTextChanged方法放置一个电话掩码,此方法中的文字不同,当尝试使用方法setSelection将光标定位在final上时,editText的文本被删除,这就发生了在Galaxy Tab 10上,有人有想法以及如何解决它?

private TextWatcher filterTextWatcherTelefone = 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) {
            try {
                if (atualizando) {
                    atualizando = false;
                    return;
                }


                String resultado = limparFormatacaoNumero(s.toString()); // CLEAR FORMATING

                if (isNumero(resultado)) {// IS IT NUMBER?

                    if (resultado.length() <= 14) {
                        resultado = adicionarFormatacaoTelefone(resultado);//FORMAT AS PHONE NUMBER

                    } else {
                        resultado = resultado.substring(0, 14);
                        resultado = adicionarFormatacaoTelefone(resultado); //FORMAT AS PHONE NUMBER
                    }
                    atualizando = true; //UPDATING = true

                    // THE TWO LINES BELOW GENERATES THE PROBLEM. WHEN COMMMENTED, THE                            
                    // ERASE ERROR DOESN'T APPEAR. OTHERWISE, IT REVERSES THE STRING
                    textoDiscagem.setText(resultado);
                    textoDiscagem.setSelection(textoDiscagem.getText().length());

                }
            } catch (Exception e) {
            }
        }
    };

1 个答案:

答案 0 :(得分:1)

我解决了这个问题:标记:

android:inputType="textVisiblePassword"

因为问题在于键盘的自动完成。