Wie lege ich mehrere Eingabe-Typen in einem EditText auf Android fest?

9

Ich versuche ein EditText mit automatischer Großschreibung und Autokorrektur zu erstellen. Ich habe manuell herausgefunden, wie man InputFilter s hinzufügt, um eine automatische Großschreibung zuzulassen, obwohl dies nur funktioniert, nachdem der erste Buchstabe eingegeben wurde, und ich hatte kein Glück mit der Autokorrektur (ich habe versucht zu erstellen ein InputFilter, der AutoText verwendet hat, aber ich bin mir nicht sicher, wie das alles funktioniert). Im Idealfall könnte ich EditText.setInputType (...) verwenden, um alles zu handhaben, aber bisher hat das nicht funktioniert. Gibt es einen Weg, dies zu erreichen? Mein fehlgeschlagener Versuch ist unten gezeigt (ich bekomme nur normale Eingabe).

%Vor%

Bitte beachten Sie, dass ich nur an Lösungen zum Erstellen dieses EditText im Code interessiert bin - nicht per XML.

Bearbeiten

Ich fand eine solide neue Dokumentation, die TextKeyListener beschreibt, jedoch nach dem Versuch zu verwenden das:

%Vor%

und unter Verwendung der @ fabble1670-Idee, setRawInputType zu verwenden, um die KeyListener s nicht zu beeinflussen, gibt es immer noch keine Änderungen am Text.

    
Phil 19.03.2012, 13:58
quelle

3 Antworten

29

Durch XML wäre es so eingerichtet.

%Vor%

Sie fügen einfach eine Pipe ( | ) zwischen Variablen hinzu. Ich sehe, dass du es über Code gemacht hast, aber ich habe es einfach als Referenz rausgeschmissen.

    
f1vefour 18.04.2013 21:32
quelle
6

Ich hoffe, Sie haben eine Antwort auf die Frage gefunden. Die Antwort könnte denen helfen, die später zum Thread kommen. Sie können also mehrere Tags ähnlich wie in XML mithilfe von | (pipe) festlegen. Etwas wie:

%Vor%

Abhängig von Ihrer Situation möchten Sie möglicherweise auch setInputType oder setRawInputype verwenden.

    
Shobhit Puri 23.05.2013 17:43
quelle
2

Ja, es scheint, als ob das funktionieren sollte. jedoch, Blick auf die Dokumente,

  

Die Art der Daten, die in ein Textfeld eingegeben werden, um eine Eingabe zu erleichtern   Methode entscheiden, wie der Benutzer Text eingeben kann. Die Konstanten hier   entsprechen denen, die von InputType definiert wurden. Im Allgemeinen können Sie ein auswählen   einzelner Wert, obwohl einige wie angegeben kombiniert werden können.   Das Setzen dieses Attributs auf alles außer "kein" bedeutet auch, dass das   Text ist editierbar.

     

Ссылка

Es sieht also so aus, dass Sie im Allgemeinen nicht zwei Werte festlegen können.

Wenn Sie sich auch android: setInputType ansehen, heißt das, dass dies der setRawInputType () -Methode entspricht, nicht setInputType (). Sie könnten versuchen, setRawInputType () anstelle von setInputType () aufzurufen.

  

Ссылка )

    
Jeffrey Blattman 19.03.2012 14:11
quelle