Je souhaite limiter la saisie de majuscules au clavier de mon formulaire.comment restreindre la saisie de majuscules dans android par programme?
quelqu'un m'a guidé comment y parvenir?
Je souhaite limiter la saisie de majuscules au clavier de mon formulaire.comment restreindre la saisie de majuscules dans android par programme?
quelqu'un m'a guidé comment y parvenir?
D'abord, quel est votre objectif? Pourquoi voulez-vous restreindre les majuscules? Tu ne peux pas prendre soin d'eux sur la validation des entrées utilisateur et utiliser toLowerCase()
Si vous avez besoin de restreindre les lettres majuscules, la seule façon que je peux penser est prépondérant onTextChanged(CharSequence text, int start, int before, int after) et d'essayer de faire ce que vous vouloir à l'intérieur. Je ne l'ai pas testé, mais cela pourrait fonctionner.
Mise à jour: radek mentionné InputFilter. Ces solutions semblent plus propres que les miennes, mais je ne les ai jamais utilisées. Les InputFilters peuvent être attachés aux éditables pour limiter les changements qui peuvent leur être apportés.
Dans le code source:
InputFilter smallFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
if (Character.isUpperCase(source.charAt(i))) {
char[] v = new char[end - start];
TextUtils.getChars(source, start, end, v, 0);
String s = new String(v).toLowerCase();
if (source instanceof Spanned) {
SpannableString sp = new SpannableString(s);
TextUtils
.copySpansFrom((Spanned) source, start, end, null, sp, 0);
return sp;
} else {
return s;
}
}
}
return null;
}
};
EditText vText = ...;
vText.setFilters(new InputFilter[]{smallFilter});
Il est basé sur la source Android de: InputFilter.AllCaps. Testé et fonctionne.
Je pense qu'il veut l'inverse: pas de majuscules – Maragues
les deux ne fonctionne pas. ci-dessus règle automatiquement le clavier à chaque fois si vous l'éteignez, il vous permet d'entrer 1 petit caractère. et en dessous d'une erreur donnant InputFilter.AllCaps ne peut pas être résolu. – UMAR
ajouter "import android.text.InputFilter;" après la déclaration du paquet. – plugmind
Il n'y a pas inputFilter ou InputType (http://developer.android.com/reference/android/text/InputType.html) pour ce qu'il essaie de faire. – Macarse
Thats la bonne idée: D – UMAR
Merci d'avoir choisi ma réponse, mais Radek-k est le meilleur. Quoi qu'il en soit, nous avons tous appris quelque chose aujourd'hui ^^ – Maragues