No meu aplicativo Android, tenho diferentes EditText
onde o usuário pode inserir informações. Mas preciso forçar o usuário a escrever em letras maiúsculas. Você conhece uma função para fazer isso?
android
android-edittext
uppercase
Natacha
fonte
fonte
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
embora.maxLength
), tente anexar a matrizInputFilter.AllCaps()
toeditText.getFilters
. Veja stackoverflow.com/a/18934659/3890983editText.filters = editText.filters + InputFilter.AllCaps()
editText.filters += InputFilter.AllCaps()
Kotlin é maravilhoso! <3Se você deseja
forçar o usuário a escrever emletras maiúsculas por padrão no seu EditText, basta adicionarandroid:inputType="textCapCharacters"
. (O usuário ainda pode alterar manualmente para minúsculas.)fonte
Defina
input type
comoTYPE_CLASS_TEXT| TYPE_TEXT_FLAG_CAP_CHARACTERS
. Okeyboard
deve honrar isso.fonte
Você pode usar em dois sentidos.
Primeira maneira:
Defina
android:inputType="textCapSentences"
no seu EditText.Segunda maneira:
Quando o usuário digita o número, você deve usar o observador de texto e alterar pequeno para letra maiúscula.
fonte
Você pode adicionar a
android:textAllCaps="true"
propriedade ao seu arquivo xml no EditText. Isso fará com que o teclado de entrada suave apareça no modo todas maiúsculas. O valor digitado aparecerá em maiúsculas. No entanto, isso não garante que o usuário possa digitar apenasUpperCase
letras. Se eles quiserem, ainda podem voltar para as letras minúsculas. Se você deseja garantir que a saída deEdittext
esteja em Todos os caps, é necessário converter manualmente a String de entrada usando otoUpperCase()
método daString
classefonte
android:textAllCaps="true"
é apenas uma propriedade do TextView ( stackoverflow.com/a/28803492/5268730 ). Use emandroid:inputType="textCapCharacters"
vez disso.Você deve colocar
android:inputType="textCapCharacters"
com Edittext no arquivo xml.fonte
Em vez de se preocupar em lidar com o teclado, por que não aceitar qualquer entrada, minúscula ou maiúscula e converter a string em maiúscula?
O código a seguir deve ajudar:
Isso é fácil de usar, pois não é necessário que o usuário saiba que você precisa da sequência em maiúsculas. Espero que isto ajude.
fonte
Melhor ainda ... um forro em Kotlin ...
Feito!
fonte
<your_edit_text>.filters = <your_edit_text>.filters + InputFilter.AllCaps()
<your_edit_text>.filters += InputFilter.AllCaps()
No kotlin , no arquivo .kt, faça as alterações:
Use propriedade sintética para acesso direto ao widget com o ID. E em XML, para o seu texto de edição, adicione mais alguns sinalizadores como:
Isso atualizará o teclado como maiúscula ativado.
fonte
Use filtro de entrada
fonte
fonte
Apenas faça o seguinte:
fonte
Tente usar qualquer um dos códigos abaixo para resolver seu problema.
programaticamente:
XML:
fonte
Para mim, funcionou adicionando android: textAllCaps = "true" e android: inputType = "textCapCharacters"
fonte
Para obter todo o capital, use o seguinte em seu XML:
fonte
tente este código que fará sua entrada em maiúsculas
fonte
Com base na resposta aceita, essa resposta faz o mesmo, mas em Kotlin. Apenas para facilitar o copypasting: ·)
fonte
filters += InputFilter.AllCaps()
: DPara obter um teclado com letras maiúsculas ao clicar em edittext, use este código no seu xml,
fonte
Estou usando o Visual Studio 2015 / Xamarin para criar meu aplicativo para Android 5.1 e Android 6.0 (mesmo apk instalado em ambos).
Quando especifiquei
android:inputType="textCapCharacters"
no meu axml, o teclado AllCaps apareceu como esperado no Android 6.0, mas não no Android 5.1. Eu adicioneiandroid:textAllCaps="true"
à minha axml e ainda sem teclado Allcaps no Android 5.1.EditText.SetFilters(new IInputFilter[] { new InputFilterAllCaps() });
Defino um filtro usando e enquanto o teclado virtual mostra caracteres minúsculos no Android 5.1, o campo de entrada agora é AllCaps.EDIT: As diferenças comportamentais que observei e presumi serem relacionadas ao sistema operacional eram, na verdade, porque eu tinha versões diferentes do teclado do Google nos dispositivos de teste. Depois que atualizei os dispositivos para o teclado do Google mais recente (lançado em julho de 2016), o comportamento de 'All Caps' era consistente em todos os sistemas operacionais. Agora, todos os dispositivos mostram caracteres minúsculos no teclado, mas a entrada é All Caps por causa de
SetFilters(new IInputFilter[] { new InputFilterAllCaps() });
fonte
Xamarin equivalente da resposta de ErlVolton:
fonte
Realização simples do kotlin
PS para mim
filters
está sempre vazio inicialmentefonte
Um liner Java 1 da solução proposta pode ser:
Note que precisa
com.google.common.collect.Lists
.fonte
Simplesmente, adicione o código abaixo ao seu EditText do seu arquivo xml.
E se você deseja permitir texto e dígitos em maiúsculas, use o código abaixo.
fonte