Backspace для удаления всего слова (сущности) вместо каждой буквы / символа


В моем приложении у меня есть edittext, который будет содержать пользователя (взятого из БД). Существует возможность, что внутри edittext будет присутствовать больше пользователя следующим образом: UserX, UserY, UserZ

Я хочу сделать функцию backspace виртуальной клавиатуры таким образом, чтобы при щелчке она удаляла всего пользователя, а не каждый символ.

Есть какие-нибудь подсказки, как это сделать? Так как я ничего не нашел во время своих поисков. (возможно, я использовал неправильные ключевые слова)

3 5

3 ответа:

Я предлагаю вам использовать SpannableString .Вот полное руководство: Ссылка . Удачи вам !

Вам нужно заглянуть в прослушиватели для редактирования текста.

Затем, когда пользователь нажимает backspace, удалите, пока не найдете пробел, возможно, используя метод lastIndexOf().

Итак, вы getText() из EditText, Вы substring() его до последнего пробела, берете эту подстроку и устанавливаете ее как новый текст

В этой строке кода Вы можете делать все, что хотите, когда нажата кнопка backspace. Что-то вроде editText.setText("");

editText.setOnKeyListener(new OnKeyListener() {                 
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        //You can identify which key pressed buy checking keyCode value with KeyEvent.KEYCODE_
         if(keyCode == KeyEvent.KEYCODE_DEL){  
             //this is for backspace
             }
    return false;       
        }
});