Dalam aplikasi Android saya, saya memiliki perbedaan di EditText
mana pengguna dapat memasukkan informasi. Tapi saya harus memaksa pengguna untuk menulis dalam huruf besar. Apakah Anda tahu fungsi untuk melakukan itu?
android
android-edittext
uppercase
Natacha
sumber
sumber
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
.maxLength
), Cobalah untuk menambahkan arrayInputFilter.AllCaps()
keeditText.getFilters
. Lihat stackoverflow.com/a/18934659/3890983editText.filters = editText.filters + InputFilter.AllCaps()
editText.filters += InputFilter.AllCaps()
Kotlin luar biasa! <3Jika Anda ingin
memaksa pengguna untuk menulis dalamhuruf besar secara default di EditText Anda, Anda hanya perlu menambahkanandroid:inputType="textCapCharacters"
. (Pengguna masih dapat mengubah secara manual menjadi huruf kecil.)sumber
Setel
input type
keTYPE_CLASS_TEXT| TYPE_TEXT_FLAG_CAP_CHARACTERS
. Thekeyboard
harus menghormati itu.sumber
Anda bisa menggunakan dua arah.
Cara pertama:
Set
android:inputType="textCapSentences"
pada EditText Anda.Jalan kedua:
Ketika pengguna memasukkan nomor Anda harus menggunakan pengamat teks dan mengubah kecil menjadi huruf kapital.
sumber
Anda dapat menambahkan
android:textAllCaps="true"
properti ke file xml Anda di EditText. Ini akan memaksa keyboard softinput muncul di semua mode caps. Nilai yang Anda masukkan akan muncul di Huruf Besar. Namun, ini tidak akan memastikan bahwa pengguna hanya dapat memasukkanUpperCase
huruf. Jika mereka mau, mereka masih bisa kembali ke huruf kecil. Jika Anda ingin memastikan bahwa outputEdittext
dalam Semua huruf besar, maka Anda harus secara manual mengkonversi String input menggunakantoUpperCase()
metodeString
kelas.sumber
android:textAllCaps="true"
hanya properti dari TextView ( stackoverflow.com/a/28803492/5268730 ). Gunakanandroid:inputType="textCapCharacters"
sebagai gantinya.Anda harus meletakkan
android:inputType="textCapCharacters"
dengan Edittext dalam file xml.sumber
Daripada khawatir berurusan dengan keyboard, mengapa tidak hanya menerima input, huruf kecil atau huruf besar dan mengubah string menjadi huruf besar?
Kode berikut akan membantu:
Ini ramah pengguna karena tidak perlu bagi pengguna untuk mengetahui bahwa Anda memerlukan string dalam huruf besar. Semoga ini membantu.
sumber
Bahkan lebih baik ... satu liner di Kotlin ...
Selesai!
sumber
<your_edit_text>.filters = <your_edit_text>.filters + InputFilter.AllCaps()
<your_edit_text>.filters += InputFilter.AllCaps()
Di kotlin , dalam file .kt buat perubahan:
Gunakan properti sintetis untuk akses langsung widget dengan id. Dan dalam XML, untuk teks edit Anda tambahkan beberapa tanda lagi sebagai:
Ini akan memperbarui keyboard sebagai huruf besar diaktifkan.
sumber
Gunakan filter input
sumber
sumber
Lakukan saja ini:
sumber
Coba gunakan salah satu dari kode di bawah ini untuk menyelesaikan masalah Anda.
secara terprogram:
XML:
sumber
Bagi saya ini bekerja dengan menambahkan android: textAllCaps = "true" dan android: inputType = "textCapCharacters"
sumber
Untuk mendapatkan semua modal, gunakan yang berikut ini di XML Anda:
sumber
coba kode ini akan membuat input Anda menjadi huruf besar
sumber
Berdasarkan jawaban yang diterima, jawaban ini melakukan hal yang sama, tetapi di Kotlin. Hanya untuk memudahkan copypasting: ·)
sumber
filters += InputFilter.AllCaps()
: DUntuk mendapatkan papan ketik kapital saat klik edittext gunakan kode ini di xml Anda,
sumber
Saya menggunakan Visual Studio 2015 / Xamarin untuk membangun aplikasi saya untuk Android 5.1 dan Android 6.0 (apk sama diinstal pada keduanya).
Ketika saya tentukan
android:inputType="textCapCharacters"
di axml saya, keyboard AllCaps muncul seperti yang diharapkan pada Android 6.0, tetapi bukan Android 5.1. Saya menambahkanandroid:textAllCaps="true"
ke axml saya dan masih tidak ada keyboard AllCaps di Android 5.1. Saya menetapkan filter menggunakanEditText.SetFilters(new IInputFilter[] { new InputFilterAllCaps() });
dan sementara keyboard lunak menunjukkan karakter huruf kecil pada Android 5.1, bidang input sekarang AllCaps.EDIT: Perbedaan perilaku yang saya amati dan diasumsikan terkait OS sebenarnya karena saya memiliki berbagai versi Google Keyboard pada perangkat uji. Setelah saya memperbarui perangkat ke Google Keyboard terbaru (dirilis Juli 2016 saat tulisan ini dibuat), perilaku 'Semua Caps' konsisten di seluruh OS. Sekarang, semua perangkat menunjukkan karakter huruf kecil pada keyboard, tetapi inputnya adalah Semua Huruf karena
SetFilters(new IInputFilter[] { new InputFilterAllCaps() });
sumber
Xamarin setara dengan jawaban ErlVolton:
sumber
Realisasi kotlin sederhana
PS untuk saya
filters
selalu kosong pada awalnyasumber
Java 1-liner dari solusi yang diusulkan dapat berupa:
Perhatikan itu perlu
com.google.common.collect.Lists
.sumber
Cukup, Tambahkan kode di bawah ini ke EditText file xml Anda.
Dan jika Anda ingin membolehkan teks huruf besar dan angka, gunakan kode di bawah ini.
sumber