validar studio propiedades obtener inputtype example eventos edittext datos android android-edittext textselection android-cursor

studio - ¿Cómo deshabilitar el posicionamiento del cursor y la selección de texto en EditText?(Androide)



propiedades edittext android (4)

Estoy buscando una forma de evitar que el usuario mueva la posición del cursor a cualquier parte. El cursor siempre debe permanecer al final del valor de EditText actual. Además de eso, el usuario no debería poder seleccionar nada en EditText. ¿Tienes alguna idea de cómo realizar eso en Android usando un EditText?

Para aclarar: el usuario debería poder insertar texto, pero solo al final.


Esto restablecerá el enfoque del cursor a la última posición del texto

editText.setSelection(editText.getText().length());

Este método deshabilitará el movimiento del cursor al tacto

public class MyEditText extends EditText{ @Override public boolean onTouchEvent(MotionEvent event) { final int eventX = event.getX(); final int eventY = event.getY(); if( (eventX,eventY) is in the middle of your editText) { return false; } return true; } }

Y puedes usar el atributo xml

android: cursorVisible

o la función java

setCursorVisible (boolean)

para deshabilitar el cursor parpadeante de edittext


Parece que la mejor manera de hacerlo es crear su propia clase CustomEditText y anular / modificar cualquier método relevante. Puede ver el código fuente de EditText aquí.

public class CustomEditText extends EditText { @Override public void selectAll() { // Do nothing } /* override other methods, etc. */ }


Prueba esto:

mEditText.setMovementMethod(null);


Yo tuve el mismo problema. Esto terminó trabajando para mí:

public class CustomEditText extends EditText { @Override public void onSelectionChanged(int start, int end) { CharSequence text = getText(); if (text != null) { if (start != text.length() || end != text.length()) { setSelection(text.length(), text.length()); return; } } super.onSelectionChanged(start, end); } }