2017-08-08 5 views
0

Je suis en train de mettre en place « capitalisation première lettre » progrommaticaly (parce que je l'ai mis de EditText dans ListView)capitalisation Première lettre pour EditText avec entrée Gboard

Il y a beaucoup de sujet lié à cette question , et le plus célèbre est that je suppose. J'ai essayé des solutions fournies là et

setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_CAP_SENTENCES) 

aide vraiment. Exception - lorsque l'utilisateur utilise GBoard(clavier google) il dosen't aide. (La capitalisation automatique n'est pas désactivée)

Alors, est-il possible de le faire fonctionner pour GBoard? ou peut-être ... est-il possible de programmer press shift lorsqu'il n'y a pas de texte dans edittext?

+1

Il n'y a pas (su que je pouvais trouver) moyen de passer outre cela. Le meilleur pari (et le plus sûr d'un autre point de vue) est une combinaison de ce que vous faites déjà et d'un écouteur de texte pour mettre en majuscule la première lettre de la CharSequence (ou lorsque le champ perd son focus, si cela se produit pour votre cas d'utilisateur). Considérez CapWords aussi comme un drapeau, si cela fonctionne (parce que celui-ci a tendance à fonctionner indépendamment du commutateur de la carte). Mais dans l'ensemble, la meilleure solution est de faire les deux. –

Répondre

1

Je ne l'ai pas testé mais peut-être essayer de surcharger l'écouteur pour l'entrée dans edittext et juste faire rapidement supprimer -> capitialize lettre -> et mettre à nouveau à edittext.

Je pense qu'il devrait être possible de le faire de cette façon et fonctionnera pour tout clavier.

+0

aucune autre solution trouvée. – user5599807