如何禁用EditText中的光标定位和文本select? (机器人)

我正在寻找一种方法来防止用户在任何地方移动光标位置。 游标应始终停留在当前EditText值的末尾。 除此之外,用户不应该能够在EditText中select任何内容。 你有什么想法如何实现在Android中使用EditText?

澄清:用户应该能够插入文本,但只能在最后。

Related of "如何禁用EditText中的光标定位和文本select? (机器人)"

我有同样的问题。 这最终为我工作:

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