Как отключить позиционирование курсора и выбор текста в EditText? (Android)

Я ищу способ предотвратить перемещение пользователем положения курсора в любом месте. Курсор всегда должен оставаться в конце текущего значения EditText. В дополнение к этому пользователь не должен выбирать что-либо в EditText. Вы знаете, как реализовать это в Android с помощью EditText?

Чтобы уточнить: пользователь должен иметь возможность вставлять текст, но только в конце.

У меня такая же проблема. Это закончилось для меня работой:

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

Это сместит курсор на последнюю позицию текста

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

Этот метод отключит перемещение курсора при касании

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

И вы можете использовать либо атрибут xml

андроид: cursorVisible

Или java-функции

setCursorVisible (булево)

Отключить мигающий курсор edittext

Похоже, что лучший способ сделать это – создать свой собственный класс CustomEditText и переопределить / изменить любые соответствующие методы. Здесь вы можете увидеть исходный код для EditText .

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

Попробуй это:

 mEditText.setMovementMethod(null);