У меня есть функция, которая возвращает некоторую строку для буквы «А», когда пользователь выбирает вариант 1, и другую строку, когда пользователь выбирает вариант 2:
private String changeText(int option){
if(option==1)
return "Y";
if(option==2)
return "Z";
}
Я хочу заменить символ в EdittextView, когда пользователь выбирает опцию 1 и вводит «A», заменяет A на «Y» и то же самое для варианта 2 на «Z», и это должно быть сделано в режиме реального времени. Итак, я придумал TextWatcher.
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 0)
return;
s.replace(editText.getSelectionStart(),
editText.getSelectionStart()+1, changeText(option));
}
и это не работает. Я предполагаю, что я пытаюсь заменить символ более новым, прежде чем он будет напечатан (не уверен). Я просто хочу заменить последний набранный символ в любой позиции курсора в соответствии с выбранной опцией.