如何在Android应用程序的TextView中大写文本的第一个字母

All*_*ich 71 xml android

我也没有提到textInput.我的意思是,一旦你在一个TextView具有静态文本(从数据库调用填充到用户输入的数据(可能不是大写)),我怎么能确保他们的资本?

谢谢!

Che*_*mon 156

我应该能够通过标准的java字符串操作来实现这一点,没有特定的Android或TextView.

就像是:

String upperString = myString.substring(0,1).toUpperCase() + myString.substring(1);
Run Code Online (Sandbox Code Playgroud)

虽然可能有一百万种方法可以实现这一目标.请参阅字符串文档

  • 只是想说明这是一个很好的英语解决方案,但不是本地化友好的. (9认同)

Bet*_*das 64

android:inputType="textCapSentences"
Run Code Online (Sandbox Code Playgroud)

要么

TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
Run Code Online (Sandbox Code Playgroud)

这将是CAP的第一个字母.

要么

compile 'org.apache.commons:commons-lang3:3.4' //in build.gradle module(app)

tv.setText(StringUtils.capitalize(myString.toLowerCase().trim()));
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于TextView,只适用于EditText; 即使这样,它也适用于从键盘输入的文本,而不适用于使用setText()加载的文本.更具体地说,它会在键盘上打开Caps,用户可以随意覆盖它. (72认同)

nol*_*man 22

StringBuilder sb = new StringBuilder(name);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));  
return sb.toString();
Run Code Online (Sandbox Code Playgroud)


Pra*_*ash 8

您可以 在Gradle中添加Apache Commons Langcompile 'org.apache.commons:commons-lang3:3.4'

并使用 WordUtils.capitalizeFully(name)


小智 7

对于Kotlin,只需致电

textview.text = string.capitalize()
Run Code Online (Sandbox Code Playgroud)

  • 我本以为它会将每个单词大写,但它确实只适用于第一个单词。 (3认同)