InputType = PersonName?

我有一个TextView对象,其目的是键入一个人的名字。 我看了一下 ,发现textPersonName是一个输入types。 所以我选择了那种输入types,认为它会做我想要的。

但是,此输入types不会将第一个字母大写。 由于人们的名字以大写字母开头,我发现这很奇怪。 这是故意的,还是Google的设计疏忽?

在任何情况下,我都选择textCapWords作为新的输入types,以确保每个单词开始大写。 将此输入types用于某个人的名字会有什么不利之处吗? 使用textPersonName作为输入types有什么好处?

Solutions Collecting From Web of "InputType = PersonName?"

您可以使用|组合inputType属性 (或)运营商。

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

放置在文本字段中的数据types,用于帮助输入方法决定如何让用户输入文本。 这里的常量对应于InputType定义的常量。 通常,您可以选择单个值,但有些值可以按指示组合在一起。 将此属性设置为除none之外的任何内容也意味着文本是可编辑的。

必须是以下常量值中的一个或多个(由“|”分隔)。

因此, textPersonNametextCapWords的优点结合起来,只需使用以下语法设置输入types:

 android:inputType="textPersonName|textCapWords" 

此答案简要说明了将textPersonName用于名称输入字段的好处。

EditText小部件中的inputype属性:( 在Android 4.4.3和2.3.3上测试)

  
  • inputType: textLongMessage 。 键盘:字母/默认。 输入按钮:发送/下一步。 有感情:是的。 案例:小写。 建议:是的。 加法字符:和 和所有

  • inputType: textFilter 。 键盘:字母/默认。 输入按钮:发送/下一步。 有感情:是的。 案例:小写。 建议:没有 。 加法字符:和 和所有

  • inputType: textCapWords 。 键盘:字母/默认。 输入按钮:发送/下一步。 有感情:是的。 案例:骆驼案 。 建议:是的。 加法字符:和 和所有

  • inputType: textCapSentences 。 键盘:字母/默认。 输入按钮:发送/下一步。 有感情:是的。 案例:判刑案件 。 建议:是的。 加法字符:和 和所有

  • inputType: 时间 。 键盘:数字。 输入按钮:发送/下一步。 有感情:没有。 建议:没有 。 加法字符::

  • inputType: textMultiLine 。 键盘:字母/默认。 输入按钮:下一行 。 有感情:是的。 案例:小写。 建议:是的。 加法字符:和 和所有

  • inputType: number键盘:数字 。 输入按钮:发送/下一步。 有感情:没有。 建议:没有。 添加字符:没有

  • inputType: textEmailAddress 。 键盘:字母/默认。 输入按钮:发送/下一步。 有感情:没有 。 案例:小写。 建议:没有 。 加法字符: @ 和所有

  • inputType 🙁 无types) 。 键盘:字母/默认。 输入按钮:下一行 。 有感情:是的。 案例:小写。 建议:是的。 加法字符:和 和所有

  • inputType: textPassword 。 键盘:字母/默认。 输入按钮:发送/下一步。 有感情:没有。 案例:小写。 建议:没有 。 加法字符:和 和所有

  • inputType: text 。 键盘:键盘:字母/默认。 输入按钮:发送/下一步。 有感情:是的。 案例:小写。 建议:是的。 加法字符:和 和所有

  • inputType: textShortMessage 。 键盘:字母/默认。 输入按钮:情绪 。 有感情:是的。 案例:小写。 建议:是的。 加法字符:和 和所有

  • inputType: textUri 。 键盘:字母/默认。 输入按钮:发送/下一步。 有感情:没有。 案例:小写。 建议:没有 。 加法字符: / 和所有

  • inputType: textCapCharacters 。 键盘:字母/默认。 输入按钮:发送/下一步。 有感情:是的。 案例:大写 。 建议:是的。 加法字符:和 和所有

  • inputType: phone键盘:数字 。 输入按钮:发送/下一步。 有感情:没有。 建议:没有 。 加法字符: *#。 – /()WPN,+

  • inputType: textPersonName 。 键盘:字母/默认。 输入按钮:发送/下一步。 有感情:是的。 案例:小写。 建议:是的。 加法字符:和 和所有

注意: Auto-capitalization设置将更改默认行为。

注意2:Numeric keyboard ,所有数字均为英语1234567890。

注3: Correction/Suggestion设置会覆盖默认行为。

在任何情况下,我都选择textCapWords作为新的输入types,以确保每个单词开始大写。 将此输入types用于某个人的名字会有什么不利之处吗?

这里似乎没有任何问题,因为你只需更改输入types,将其指定为Capital的首字母,但它将允许输入多行。如果您只想要一个带有人名的行,这可能是一个缺点。

使用textPersonName作为输入types有什么好处?

文本字段中的单行条目是将文本输入用作textPerson的优势。

 public class MainActivity extends Activity { TextView tv1; EditText et1; Button bt1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv1=(TextView)findViewById(R.id.textView1); et1=(EditText)findViewById(R.id.editText1); bt1=(Button)findViewById(R.id.button1); bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String s=et1.getText().toString(); //char s1=s.charAt(0); if (s.length() < = 1) { s = s.toUpperCase(); } else { s = s.substring(0, 1).toUpperCase() +s.substring(1); } tv1.setText(s); } }); } 

使用android:inputType="textPersonName"时没有进行拼写检查,但是在**textCapWords**

因此,如果您使用textPersonName ,则名称不会有红色下划线,但每个名称的首字母(名字,中间名,姓氏等)将不会大写

所以最好的解决方案是将两者结合起来或者说是android:inputType="textPersonName|textCapWords"

现在不会有红色下划线的名称和第一个字母也将大写