In meiner Android-Anwendung habe ich verschiedene, EditText
wo der Benutzer Informationen eingeben kann. Aber ich muss den Benutzer zwingen, in Großbuchstaben zu schreiben. Kennen Sie eine Funktion, um das zu tun?
android
android-edittext
uppercase
Natacha
quelle
quelle
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
.maxLength
Versuchen Sie, das ArrayInputFilter.AllCaps()
an daseditText.getFilters
Array anzuhängen, um zu vermeiden, dass die in xml festgelegten Filter überschrieben werden (z. B. ) . Siehe stackoverflow.com/a/18934659/3890983editText.filters = editText.filters + InputFilter.AllCaps()
editText.filters += InputFilter.AllCaps()
Kotlin ist wunderbar! <3Wenn Sie
den Benutzer zwingenmöchten, inGroßbuchstabenzu schreibenin Ihrem EditText standardmäßig , müssen Sie nur hinzufügenandroid:inputType="textCapCharacters"
. (Der Benutzer kann weiterhin manuell in Kleinbuchstaben wechseln.)quelle
Stellen Sie das
input type
aufTYPE_CLASS_TEXT| TYPE_TEXT_FLAG_CAP_CHARACTERS
. Daskeyboard
sollte das ehren.quelle
Sie können zwei Wege verwenden.
Erster Weg:
einstellen
android:inputType="textCapSentences"
Sie auf Ihrem EditText.Zweiter Weg:
Wenn der Benutzer die Nummer eingibt, müssen Sie Text Watcher verwenden und klein in Großbuchstaben ändern.
quelle
Sie können die
android:textAllCaps="true"
Eigenschaft Ihrer XML-Datei im EditText hinzufügen. Dadurch wird die Softinput-Tastatur im All-Caps-Modus angezeigt. Der eingegebene Wert wird in Großbuchstaben angezeigt. Dies stellt jedoch nicht sicher, dass der Benutzer nurUpperCase
Buchstaben eingeben kann . Wenn sie möchten, können sie immer noch auf Kleinbuchstaben zurückgreifen. Wenn Sie sicherstellen möchten, dass die Ausgabe vonEdittext
in Großbuchstaben erfolgt, müssen Sie die Eingabezeichenfolge mithilfetoUpperCase()
derString
Klassenmethode manuell konvertieren .quelle
android:textAllCaps="true"
ist nur eine Eigenschaft von TextView ( stackoverflow.com/a/28803492/5268730 ). Verwenden Sieandroid:inputType="textCapCharacters"
stattdessen.Sie sollten
android:inputType="textCapCharacters"
mit Edittext in XML-Datei setzen.quelle
Akzeptieren Sie keine Eingaben, Klein- oder Großbuchstaben und konvertieren Sie die Zeichenfolge in Großbuchstaben, anstatt sich um die Tastatur zu kümmern.
Der folgende Code sollte helfen:
Dies ist benutzerfreundlich, da der Benutzer nicht wissen muss, dass Sie die Zeichenfolge in Großbuchstaben benötigen. Hoffe das hilft.
quelle
Noch besser ... ein Liner in Kotlin ...
Getan!
quelle
<your_edit_text>.filters = <your_edit_text>.filters + InputFilter.AllCaps()
<your_edit_text>.filters += InputFilter.AllCaps()
In Kotlin , in .kt Datei Änderungen vornehmen:
Verwenden Sie die synthetische Eigenschaft für den direkten Zugriff auf das Widget mit der ID. Und in XML fügen Sie für Ihren Bearbeitungstext ein paar weitere Flags hinzu als:
Dadurch wird die Tastatur aktualisiert, wenn Großbuchstaben aktiviert sind.
quelle
Eingabefilter verwenden
quelle
quelle
Mach das einfach:
quelle
Versuchen Sie, einen der folgenden Codes zu verwenden, um Ihr Problem zu lösen.
programmatisch:
XML:
quelle
Für mich funktionierte es durch Hinzufügen von android: textAllCaps = "true" und android: inputType = "textCapCharacters"
quelle
Verwenden Sie in Ihrem XML Folgendes, um das gesamte Kapital zu erhalten:
quelle
Versuchen Sie diesen Code, um Ihre Eingabe in Großbuchstaben zu machen
quelle
Basierend auf der akzeptierten Antwort macht diese Antwort dasselbe, jedoch in Kotlin. Nur um das Copypasting zu vereinfachen: ·)
quelle
filters += InputFilter.AllCaps()
: DVerwenden Sie diesen Code in Ihrer XML- Datei, um eine Tastatur mit Großbuchstaben zu erhalten, wenn Sie auf edittext klicken.
quelle
Ich verwende Visual Studio 2015 / Xamarin, um meine App für Android 5.1 und Android 6.0 zu erstellen (auf beiden ist dieselbe apk installiert).
Als ich
android:inputType="textCapCharacters"
in meiner Axml angegeben habe, wurde die AllCaps-Tastatur unter Android 6.0 wie erwartet angezeigt, jedoch nicht unter Android 5.1. Ichandroid:textAllCaps="true"
habe meiner Axml hinzugefügt und noch keine AllCaps-Tastatur unter Android 5.1. Ich habe einen Filter mit eingestelltEditText.SetFilters(new IInputFilter[] { new InputFilterAllCaps() });
und während die Softtastatur unter Android 5.1 Kleinbuchstaben anzeigt, ist das Eingabefeld jetzt AllCaps.BEARBEITEN: Die Verhaltensunterschiede, die ich beobachtet habe und von denen angenommen wurde, dass sie mit dem Betriebssystem zusammenhängen, waren tatsächlich darauf zurückzuführen, dass ich verschiedene Versionen von Google Keyboard auf den Testgeräten hatte. Nachdem ich die Geräte auf die neueste Google-Tastatur aktualisiert hatte (veröffentlicht im Juli 2016), war das Verhalten von "All Caps" für alle Betriebssysteme konsistent. Jetzt zeigen alle Geräte Kleinbuchstaben auf der Tastatur an, aber die Eingabe ist aufgrund von Großbuchstaben
SetFilters(new IInputFilter[] { new InputFilterAllCaps() });
quelle
Xamarin-Äquivalent zu ErlVoltons Antwort:
quelle
Einfache Kotlin-Realisierung
PS ist für mich
filters
anfangs immer leerquelle
Ein Java 1-Liner der vorgeschlagenen Lösung könnte sein:
Beachten Sie, dass es benötigt
com.google.common.collect.Lists
.quelle
Fügen Sie einfach den folgenden Code zu Ihrem EditText Ihrer XML-Datei hinzu.
Wenn Sie sowohl Großbuchstaben als auch Ziffern zulassen möchten, verwenden Sie den folgenden Code.
quelle