我在寻找一种方法来防止用户从任何地方移动光标位置。 光标应该始终保持在当前的EditText值的末尾。 此外,用户不应该能够选择在任何的EditText。 你有什么想法如何使用一个EditText意识到,在Android的?
为了澄清:用户应该能够插入文本,但只在最后。
我在寻找一种方法来防止用户从任何地方移动光标位置。 光标应该始终保持在当前的EditText值的末尾。 此外,用户不应该能够选择在任何的EditText。 你有什么想法如何使用一个EditText意识到,在Android的?
为了澄清:用户应该能够插入文本,但只在最后。
我有同样的问题。 这结束了对我的工作:
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的闪烁的光标
试试这个:
mEditText.setMovementMethod(null);
这听起来像这样做是为了使自己的最佳方式CustomEditText
类和重写/修改任何相关方法。 你可以看到源代码,为EditText
这里。
public class CustomEditText extends EditText {
@Override
public void selectAll() {
// Do nothing
}
/* override other methods, etc. */
}