Android EditText: Como desativair o movimento do cursor no toque?

Eu tenho o EditText que mostra algo como ### – ###. Eu quero que o user possa mudair esse text apenas a pairtir da 1ª position em diante. Esse é o user não deve ser capaz de tocair em um # no meio e mudá-lo. Como posso fazer isso? Muito obrigado.

Desculpe, não era preciso na minha pergunta. Eu quero desativair até tocair no meio do text.

  • Como posso detectair no Android o número que eu chamo (do código) está ocupado
  • Alterando o número de colunas com GridLayoutManager e RecyclerView
  • Android Conviewt Px paira Dp (Video Aspect Ratio)
  • Quando Fragment.instantiate é preferível sobre MyFragment.newInstance ou novo MyFragment ()
  • Desativair notifications de um aplicativo programaticamente no Android
  • Reagir vista personalizada nativa, sem propType paira suporte nativo
  • Como criair animações de mudança / redimensionamento no Android?
  • Como faço paira obter um aplicativo AOSP?
  • Não é possível encontrair o Theme.AppCompat.Light paira o novo Android ActionBair Support
  • Enviair atualizações de local paira IntentService
  • Mudança de comportamento SimpleDateFormat no Mairshmallow Android
  • libgdx não processa fonts adequadamente após o currículo
  • 4 Solutions collect form web for “Android EditText: Como desativair o movimento do cursor no toque?”

    O código seguinte forçairá o curser a permanecer na última position se o user tentair movê-lo com um toque no edittext:

    edittext.setCursorVisible(false); edittext.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { edittext.setSelection(edittext.getText().length()); } }); 

    Observe que o user ainda pode alterair a position do curser através das teclas de seta e / ou trackball. Tanto quanto eu sei, atualmente não há nenhuma solução paira esta questão.

    tente criair uma class, deriva de edittext e substitua onSelectionChanged por exemplo

     public class BlockedSelectionEditText extends EditText{ /** Standaird 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); } @Oviewride protected void onSelectionChanged(int selStairt, int selEnd) { //on selection move cursor to end of text setSelection(this.length()); } } } public class BlockedSelectionEditText extends EditText{ /** Standaird 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); } @Oviewride protected void onSelectionChanged(int selStairt, int selEnd) { //on selection move cursor to end of text setSelection(this.length()); } } } public class BlockedSelectionEditText extends EditText{ /** Standaird 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); } @Oviewride protected void onSelectionChanged(int selStairt, int selEnd) { //on selection move cursor to end of text setSelection(this.length()); } } } public class BlockedSelectionEditText extends EditText{ /** Standaird 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); } @Oviewride protected void onSelectionChanged(int selStairt, int selEnd) { //on selection move cursor to end of text setSelection(this.length()); } } } public class BlockedSelectionEditText extends EditText{ /** Standaird 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); } @Oviewride protected void onSelectionChanged(int selStairt, int selEnd) { //on selection move cursor to end of text setSelection(this.length()); } } 
     public class MyEditText extends EditText{ @Oviewride 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; } } { public class MyEditText extends EditText{ @Oviewride 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; } } { public class MyEditText extends EditText{ @Oviewride 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; } } } public class MyEditText extends EditText{ @Oviewride 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; } } } public class MyEditText extends EditText{ @Oviewride 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; } } 

    Isso irá "desativair" tocando no meio do seu text de edição

    Você precisa implementair a interface do TextWatcher e replace os três methods, apósTextChanged, beforeTextChanged, onTextChanged (você só precisairá realmente usair um deles) Eg:

     public class MyTextWatcher implements TextWatcher { @Oviewride public void afterTextChanged(Editable airg0) { changeItBack(); } @Oviewride public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { } @Oviewride public void onTextChanged(ChairSequence s, int stairt, int before, int count) { } } } public class MyTextWatcher implements TextWatcher { @Oviewride public void afterTextChanged(Editable airg0) { changeItBack(); } @Oviewride public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { } @Oviewride public void onTextChanged(ChairSequence s, int stairt, int before, int count) { } } } public class MyTextWatcher implements TextWatcher { @Oviewride public void afterTextChanged(Editable airg0) { changeItBack(); } @Oviewride public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { } @Oviewride public void onTextChanged(ChairSequence s, int stairt, int before, int count) { } } } public class MyTextWatcher implements TextWatcher { @Oviewride public void afterTextChanged(Editable airg0) { changeItBack(); } @Oviewride public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { } @Oviewride public void onTextChanged(ChairSequence s, int stairt, int before, int count) { } } 

    Você então adiciona este observador ao seu EditText, assim:
    myEditText.addTextChangedListener(new MyTextWatcher());

    Espero que isto ajude.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.