Сохранить редактировать положение курсора текста с помощью привязки данных в Android - PullRequest
0 голосов
/ 30 октября 2019

Я создал метод получения для моего имени здания и хочу изменить строку, чтобы заменить любые символы, которые не совпадают с выражением регулярного выражения. Однако при этом каждый раз, когда я вводю недопустимый символ, курсор редактирования / позиция выбора текста меняется на начало текста. Как мне этого избежать?

private String buildingname="";
@Bindable
public String getBuildingname() {
    return this.buildingname;
}

public void setBuildingname(String buildingname) {
    if(!this.buildingname.equals(buildingname)) {
        this.buildingname = buildingname.replaceAll(alphanumericregex,"");
        this.pcr.notifyChange(this, com.tomtom.sangrahit.BR.buildingname);
    }
}

1 Ответ

0 голосов
/ 30 октября 2019

Вы можете использовать setSelection из editText ПОСЛЕ того, как вы устанавливаете новый текст

int position = myEditText.getSelectionStart();
myEditText.setText(myNewText);
myEditText.setSelection(position);
...