EditText中的setText()方法更改光标的位置

时间:2018-10-23 08:16:29

标签: android android-view

我用自定义视图编写了一个库,该视图是从EditText扩展而来的。

我希望当用户调用setText()时光标会停留在同一位置

但是默认情况下,EditText setText()将光标移到开始位置

enter image description here-> setText(“ 1111”)-> enter image description here

我该如何解决?我可以以某种方式覆盖setText方法(或其他方法,例如Br​​ingPointToView()等等)

编辑1: 它不是this问题的重复

因为我想覆盖光标在Edittext上的标准行为。

并且不强制lib用户调用 append()或setSelection()

编辑2: 我的解决方案

@Override
public void setText(CharSequence text, BufferType type) {
    super.setText(text, type);
    if (getText() != null) {
        Selection.setSelection(getText(), getText().length());
    }
}

1 个答案:

答案 0 :(得分:0)

您应将文本设置为“”,然后追加将移动光标。

  YourEditText.setText("");
  YourEditText.append("youText");