Comment capitaliser la première lettre du texte dans un TextView dans une application Android

Je ne parle pas non plus de textInput. Je veux dire qu’une fois que vous avez du texte statique dans un TextView (alimenté par un appel de firebase database à des données saisies par l’utilisateur (qui peuvent ne pas être en majuscule)), comment puis-je m’assurer qu’ils sont en majuscules?

Merci!

Je devrais être capable d’accomplir ceci par la manipulation standard de chaîne de Java, rien d’Android ou de TextView spécifique.

Quelque chose comme:

Ssortingng upperSsortingng = mySsortingng.subssortingng(0,1).toUpperCase() + mySsortingng.subssortingng(1); 

Bien qu’il y ait probablement un million de façons d’y parvenir. Voir la documentation sur les chaînes .

 android:inputType="textCapSentences" 

ou

 TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); 

Cela va CAP la première lettre.

ou

 comstack 'org.apache.commons:commons-lang3:3.4' //in build.gradle module(app) tv.setText(SsortingngUtils.capitalize(mySsortingng.toLowerCase().sortingm())); 
 SsortingngBuilder sb = new SsortingngBuilder(name); sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); return sb.toSsortingng(); 

Vous pouvez append Apache Commons Lang dans Gradle comme comstack 'org.apache.commons:commons-lang3:3.4'

Et utilisez WordUtils.capitalizeFully(name)

Pour les futurs visiteurs, vous pouvez également (au mieux à WordUtil ) importer WordUtil partir d’ Apache et append de nombreuses méthodes utiles à votre application, telles que la mise en capitalize comme indiqué ici:

Comment capitaliser le premier caractère de chaque mot dans une chaîne

Veuillez créer un TextView personnalisé et l’utiliser:

 public class CustomTextView extends TextView { public CapitalizedTextView(Context context, AtsortingbuteSet attrs) { super(context, attrs); } @Override public void setText(CharSequence text, BufferType type) { if (text.length() > 0) { text = Ssortingng.valueOf(text.charAt(0)).toUpperCase() + text.subSequence(1, text.length()); } super.setText(text, type); } } 

Pour moi, pas de travail:

Fonction:

 private Ssortingng getCapsSentences(Ssortingng tagName) { Ssortingng[] splits = tagName.toLowerCase().split(" "); SsortingngBuilder sb = new SsortingngBuilder(); for (int i = 0; i < splits.length; i++) { String eachWord = splits[i]; if (i > 0 && eachWord.length() > 0) { sb.append(" "); } Ssortingng cap = eachWord.subssortingng(0, 1).toUpperCase() + eachWord.subssortingng(1); sb.append(cap); } return sb.toSsortingng(); } 

Résultat:

brain I / P brain O / P

I / P Brain and Health O / P Brain And Health

brain And health I / P brain And health à O / P Brain And Health

brain's Health I / P à brain's Health O / P

brain's Health and leg I / P brain's Health and leg à brain's Health and leg O / P

J’espère que cela vous aidera.

Je cherchais ceci et l’ai trouvé. Si vous ajoutez ceci à EditText dans un fichier XML, vous prendrez ce que vous voulez.

 android:inputType="textCapWords" 

Aussi, lorsque vous avez terminé votre texte et appuyez sur Entrée, le clavier disparaîtra.

De rien!