如何强制EditText以大写字母开始文本?

Eug*_*ene 73 android

我有一个EditText,我需要其中的文本(当用户键入时)以大写字母开头.

Mar*_*ues 146

如果你添加两个android:capitalize="sentences",要小心android:inputType="text",因为后者似乎优先于第一个,输入将不会大写.

有一个特定inputType的自动大写第一个字母:

android:inputType="textCapSentences"

请参阅http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType

  • 警告的话:因为在我的情况下,字段将是一个人的名字,我设置android:inputType ="textPersonName".这没有按预期工作:我不得不使用android:inputType ="textCapWords"来获取名称的每个单词大写. (9认同)
  • 然后使用`android:inputType ="textMultiLine | textCapSentences"` (9认同)
  • android:capitalize ="sentences"不应该使用这个标签bcuz它已被弃用 (2认同)

Dea*_*ers 21

android:capitalize的选项是

android:capitalize="none", which won't automatically capitalize anything.

android:capitalize="sentences", Which will capitalize the first word of each sentence.

android:capitalize="words", Which Will Capitalize The First Letter Of Every Word.

android:capitalize="characters", WHICH WILL CAPITALIZE EVERY CHARACTER.
Run Code Online (Sandbox Code Playgroud)

  • 不推荐使用此方法. (3认同)

Vil*_*usK 14

使用

android:inputType="textPersonName|textCapWords"
Run Code Online (Sandbox Code Playgroud)

因为仅使用"textPersonName"是不够的,所以名字的第一个字母将被大写.

与邮政地址类似:

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


小智 8

将此添加到您的 XML

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

android:inputType="textCapSentences"将用于句子.但是,我需要将全名字段中的每个单词都大写.


Lak*_*nan 6

试试这个,

testEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
Run Code Online (Sandbox Code Playgroud)

android:inputType="textCapSentences"仅在您的设备键盘启用自动大写设置时才起作用.