2013-08-27 2 views
5

Dans mon application, j'ai un edittext qui contiendra un utilisateur (rapporté de db). Il y a la possibilité que plus d'un utilisateur soit présent dans l'edittext de la manière suivante: UserX, UserY, UserZRetour arrière pour supprimer le mot entier (entité) au lieu de chaque lettre/caractère

Je veux faire en sorte que l'espace de retour du clavier virtuel fonctionne de telle manière que, au clic, il supprime l'utilisateur entier, plutôt que chaque personnage.

Des conseils comment faire cela? Comme je n'ai rien trouvé sur mes recherches. (peut-être que j'utilisais de mauvais mots-clés)

+0

Avez-vous trouvé une solution? – Andrea

Répondre

1

Je vous suggère d'utiliser un SpannableString .Ici est un guide complet: link. Bonne chance !

1

Vous devez regarder dans les écouteurs pour éditer le texte.

Ensuite, lorsque l'utilisateur appuie sur le retour arrière, supprimez jusqu'à ce que vous trouviez un espace en utilisant peut-être une méthode lastIndexOf().

Ainsi, vous getText() de EditText, vous substring() ce jusqu'à ce que le dernier caractère de l'espace, prenez cette sous-chaîne et le définir comme le nouveau texte

1

Dans cette ligne de code que vous pouvez faire ce que vous voulez, quand le bouton Backspace pressé. Quelque chose comme 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

Existe-t-il un moyen de travailler avec ceci dans un clavier logiciel? – horro

Questions connexes