Я написал библиотеку с настраиваемым представлением, которое было расширено из EditText.
Я хочу, чтобы при вызове пользователя setText () курсор оставался в той же позиции
Но по умолчанию EditText setText () перемещает курсор в начало
Как я могу это исправить? Могу ли я как-то переопределить метод setText (или другие методы, такие как takePointToView () и т. д.)
РЕДАКТИРОВАТЬ 1: Это не дубликат вопроса это
Потому что я хочу отвергать стандартное поведение курсора в Edittext.
И нет заставляет пользователя библиотеки вызывать append () или setSelection ()
Обновлено еще раз: Мое решение
@Override
public void setText(CharSequence text, BufferType type) {
super.setText(text, type);
if (getText() != null) {
Selection.setSelection(getText(), getText().length());
}
}
Как я уже сказал, это библиотека. Я не могу заставить пользователя каждый раз вызывать setSelection. Я хочу, чтобы это было поведение по умолчанию внутри моего настраиваемого Edittext для setText. Так что вопрос немного в другом
Вопрос немного другой, и его нельзя рассматривать как дублирующий.
Вы должны установить текст в "", а затем добавить, чтобы переместить курсор.
YourEditText.setText("");
YourEditText.append("youText");
Это будет работать только в том случае, если вы всегда редактируете конец EditText, иначе редактирование текста в середине диапазона приведет к перемещению курсора до конца для каждой записи.
При звонке в
setText()звоните и вeditText.setSelection(editText.getText().length());.