studio setselection programacion not móviles focused edittext disable desarrollo curso avoid aplicaciones android android-edittext

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()); } }