setselection - manual de programacion android pdf
Android EditText: cómo deshabilitar el movimiento del cursor al tocar? (4)
Debe implementar la interfaz TextWatcher y anular los tres métodos, afterTextChanged, beforeTextChanged, onTextChanged (puede que solo necesite usar uno de ellos). Por ejemplo:
public class MyTextWatcher implements TextWatcher {
@Override
public void afterTextChanged(Editable arg0) {
changeItBack();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
}
A continuación, agregue este Vigilante a su EditText, así:
myEditText.addTextChangedListener(new MyTextWatcher());
Espero que esto ayude.
Tengo EditText que muestra algo como ### - ###. Quiero que el usuario pueda cambiar este texto solo desde la primera posición en adelante. Es decir, el usuario no debería poder tocar un # en el centro y cambiarlo. ¿Cómo puedo hacer esto? Muchas gracias.
Lo siento, no fui preciso en mi pregunta. Quiero deshabilitar incluso tocar en el medio del texto.
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;
}
}
Esto "inhabilitará" tocar en el medio de su texto de edición
El siguiente código obligará al cursor a permanecer en la última posición si el usuario intenta moverlo con un toque en el texto de edición:
edittext.setCursorVisible(false);
edittext.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
edittext.setSelection(edittext.getText().length());
}
});
Tenga en cuenta que el usuario aún puede cambiar la posición del cursor mediante las teclas de flecha y / o la bola de seguimiento. Hasta donde sé, actualmente no hay solución para este problema.
intente crear una clase que derive de edittext e invalidar onSelectionChanged por ejemplo
public class BlockedSelectionEditText extends
EditText{
/** Standard Constructors */
public BlockedSelectionEditText (Context context) {
super(context);
}
public BlockedSelectionEditText (Context context,
AttributeSet attrs) {
super(context, attrs);
}
public BlockedSelectionEditText (Context context,
AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onSelectionChanged(int selStart, int selEnd) {
//on selection move cursor to end of text
setSelection(this.length());
}
}