validar texto studio solo propiedades ontextchanged numeros eventos edittext caja android android-edittext

android - texto - ¿Cómo usar el evento EditText onTextChanged cuando presiono el número?



textwatcher android (3)

Tengo un EditText con "text = 0.00" . Cuando presiono el número 3, debería ser como 0.03 y la segunda vez que presiono el número 5, el texto debería ser 0.35 . Y 35.0 , 35.09 gusta esto. El EditText inicialmente tiene el valor de 0.00 .

Todo esto se hace con el mismo EditText .

¿Cómo logro esto? He intentado usar addTextChangedListener() con TextWatcher() .


Aquí, escribí algo similar a lo que necesitas:

inputBoxNumberEt.setText(". "); inputBoxNumberEt.setSelection(inputBoxNumberEt.getText().length()); inputBoxNumberEt.addTextChangedListener(new TextWatcher() { boolean ignoreChange = false; @Override public void afterTextChanged(Editable s) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (!ignoreChange) { String string = s.toString(); string = string.replace(".", ""); string = string.replace(" ", ""); if (string.length() == 0) string = ". "; else if (string.length() == 1) string = ". " + string; else if (string.length() == 2) string = "." + string; else if (string.length() > 2) string = string.substring(0, string.length() - 2) + "." + string.substring(string.length() - 2, string.length()); ignoreChange = true; inputBoxNumberEt.setText(string); inputBoxNumberEt.setSelection(inputBoxNumberEt.getText().length()); ignoreChange = false; } } });


Has seleccionado el enfoque correcto. Debe ampliar la clase con TextWatcher y anular afterTextChanged() , beforeTextChanged() , onTextChanged() .

afterTextChanged() escribir la lógica deseada en el método afterTextChanged() para lograr la funcionalidad que necesita.


También puedes probar esto:

EditText searchTo = (EditText)findViewById(R.id.medittext); searchTo.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { doSomething(); } });