Wie kann man SPACE sofort von einem Editiertext löschen, wenn ein Benutzer auf den Space drückt?

7

Ich habe einen Edittext und einen Textwatcher, der beobachtet, ob SPACE angekommen ist oder nicht. Wenn es ein SPACE ist, möchte ich das sofort löschen. Oder wenn es ein Leerzeichen ist, möchte ich sicherstellen, dass es nicht erscheint, aber irgendwie (setterror, toast) für den Benutzer anzeigt, dass Leerzeichen nicht erlaubt sind.

%Vor%

Ich kann onkeydown in der afterTextChanned-Methode nicht definieren, da es mir einen Fehler gibt.

%Vor%

Es funktioniert also nicht (Syntaxfehler, falsches Konstrukt für int keyCode .

Vielen Dank im Voraus!

    
Jani Bela 18.03.2012, 11:39
quelle

7 Antworten

37

Die Lösung ist wie immer viel einfacher:

%Vor%

Dies sollte nicht die Probleme der vorherigen Versuche haben.

    
Luksprog 18.03.2012, 15:38
quelle
2
%Vor%

Legen Sie dies als eine separate Funktion fest:

%Vor%     
Harsh Dev Chandel 18.03.2012 16:07
quelle
2

setSelection soll den Cursor wieder am Ende von EditText setzen:

%Vor%     
ORY 29.03.2016 15:55
quelle
0

Um den Raum sofort zu entfernen, können Sie ihn auf zwei Arten erreichen.

Eine einfache Lösung Sie können die Ziffern auf Ihren Text bearbeiten.

%Vor%

zweite Möglichkeit, einen Filter zu setzen

%Vor%     
King of Masses 22.04.2016 11:42
quelle
0
%Vor%

\ s entspricht einem beliebigen Leerzeichen (gleich [\ r \ n \ t \ f \ v])

Mit dieser Einstellung können Sie Text in der Mitte des Editiertext eingeben oder einfügen, ohne die Cursorposition zu verlieren

    
John 06.09.2017 08:54
quelle
0

Noch eine einfache Möglichkeit, dies mit dem Eingabefilter

zu erreichen %Vor%

Dadurch wird das vom Benutzer eingegebene Leerzeichen sofort entfernt und das Aussehen wird wie bei deaktiviertem Speicherplatz angezeigt.

    
PranavKAndro 26.09.2017 11:03
quelle
0

Meine relativ einfache Lösung für das sofortige Löschen von Leerzeichen ohne spannables (Stile) in EditText :

zu entfernen
  1. Beim Start entfernen:

    %Vor%

Das ist alles, aber Sie können auch:

  1. Beim Start entfernen (ohne die erste Eingabe zu unterbrechen):

    %Vor%
  1. Entfernen am Anfang und am Ende (1 Leerzeichen am Ende für die bequeme Eingabe):

    %Vor%
JacksOnF1re 19.10.2017 11:44
quelle