2013-08-27 13 views
5

W mojej aplikacji mam edittext, który będzie zawierał użytkownika (wniesiony z db). Istnieje możliwość, że więcej niż użytkownik będzie obecny w edytorze tekstu w następujący sposób: UserX, UserY, UserZBackspace, aby usunąć całe słowo (encję) zamiast każdej litery/znaku

Chcę zrobić backspace funkcji wirtualnej klawiatury w taki sposób, aby po kliknięciu usuwał cały użytkownik, a nie każdy znak.

Jakieś wskazówki, jak to zrobić? Ponieważ nie znalazłem nic na moich poszukiwaniach. (być może użyłem złych słów kluczowych)

+0

znalazłeś rozwiązanie? – Andrea

Odpowiedz

1

Proponuję użyć SpannableString .Tutaj jest kompletny przewodnik: link. Powodzenia !

1

Musisz zajrzeć do osób słuchających, aby edytować tekst.

Następnie, gdy użytkownik naciśnie klawisz Backspace, usuń, aż znajdziesz miejsce, używając metody lastIndexOf().

Więc getText() od EditText, to substring() to do ostatniego znaku spacji, przyjąć, że podciąg i ustawić go jako nowego tekstu

1

w tej linii kodu możesz robić, co chcesz, kiedy przycisk Backspace jest prasowany. Coś jak 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;  
     } 
}); 
+0

Czy istnieje sposób pracy z tym w klawiaturze programowej? – horro