как убрать последнюю цифру слева от курсора в EditText - PullRequest
0 голосов
/ 08 июня 2019

Я делал кнопку DEL, которая удаляла бы 1 символ за раз.Я недавно добавил движение курсора для удаления между бутонами, не знаю, как

Я использовал подстроки для нормального удаления.Он потерпит крах, если число символов будет 0 или 1, прежде чем нажать на него.Я добавил оператор if, чтобы это исправить.

Вот мой метод удаления

 public void delete(View view){
        if(textArea.length()==0){
            return;
        }else if(textArea.length()==1){
            if(textArea.getSelectionStart()==textArea.length()){
                textArea.setText("");
            }else{
                return;
            }

        }else {
            int selection = textArea.getSelectionStart();
            textArea.setText(textArea.getText().delete(Math.max(0, selection - 1), selection));
        }
    }

Скажите, пожалуйста, как я мог это сделать, чтобы удалить символ, который был сразу слева от курсора.

Я отредактировал код для ответчика

1 Ответ

0 голосов
/ 08 июня 2019

Вы можете использовать delete метод класса Editable, подобный этому

 public void delete(View view){
    int selection = textArea.getSelectionStart();
    textArea.setText(textArea.getText().delete(Math.max(0, selection - 1), selection));
}
...