我有一个 TextView 对象,其目的是输入一个人的名字。我看了看这里,发现这textPersonName
是一个输入类型。所以我选择了那个输入类型,认为它会做我想要的。
但是,此输入类型不会将第一个字母大写。由于人们的名字以大写字母开头,我觉得这很奇怪。这是故意的,还是 Google 的设计疏忽?
无论如何,我选择textCapWords
了新的输入类型以确保每个单词都大写。将这种输入类型用于人名会有什么缺点吗?textPersonName
用作输入类型有什么好处?
您可以使用|
(或)运算符组合 inputType 属性。
http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType
放置在文本字段中的数据类型,用于帮助输入法决定如何让用户输入文本。这里的常量对应于 InputType 定义的常量。通常,您可以选择单个值,但可以按照指示将一些值组合在一起。将此属性设置为 none 以外的任何值也意味着文本是可编辑的。
必须是以下常量值中的一个或多个(由“|”分隔)。
因此,要结合textPersonName
with的好处textCapWords
,只需使用以下语法设置输入类型:
android:inputType="textPersonName|textCapWords"
此答案简要说明了将 textPersonName 用于名称输入字段的好处。
inputype
EditText
小部件中的属性:(在 Android 4.4.3 和 2.3.3 上测试)
<EditText android:id="@+id/et_test" android:inputType="?????"/>
输入类型:textLongMessage。键盘:字母/默认。输入按钮:发送/下一步。有情绪:是的。大小写:小写。建议:是的。加法字符:,和. 和所有
输入类型:文本过滤器。键盘:字母/默认。输入按钮:发送/下一步。有情绪:是的。大小写:小写。建议:没有。加法字符:,和. 和所有
输入类型:textCapWords。键盘:字母/默认。输入按钮:发送/下一步。有情绪:是的。案例:骆驼案。建议:是的。加法字符:,和. 和所有
输入类型:textCapSentences。键盘:字母/默认。输入按钮:发送/下一步。有情绪:是的。案例:句子案例。建议:是的。加法字符:,和. 和所有
输入类型:时间。键盘:数字。输入按钮:发送/下一步。有情绪:没有。建议:没有。加法字符: :
输入类型:文本多行。键盘:字母/默认。输入按钮:下一行。有情绪:是的。大小写:小写。建议:是的。加法字符:,和. 和所有
输入类型:数字。键盘:数字。输入按钮:发送/下一步。有情绪:没有。建议:没有。加法字符:无
输入类型:文本电子邮件地址。键盘:字母/默认。输入按钮:发送/下一步。有情绪:没有。大小写:小写。建议:没有。加法字符:@和. 和所有
inputType:(无类型)。键盘:字母/默认。输入按钮:下一行。有情绪:是的。大小写:小写。建议:是的。加法字符:,和. 和所有
输入类型:文本密码。键盘:字母/默认。输入按钮:发送/下一步。有情绪:没有。大小写:小写。建议:没有。加法字符:,和. 和所有
输入类型:文本。键盘:键盘:字母/默认。输入按钮:发送/下一步。有情绪:是的。大小写:小写。建议:是的。加法字符:,和. 和所有
输入类型:textShortMessage。键盘:字母/默认。输入按钮:情感。有情绪:是的。大小写:小写。建议:是的。加法字符:,和. 和所有
输入类型:textUri。键盘:字母/默认。输入按钮:发送/下一步。有情绪:没有。大小写:小写。建议:没有。加法字符:/和. 和所有
输入类型:textCapCharacters。键盘:字母/默认。输入按钮:发送/下一步。有情绪:是的。案例:大写。建议:是的。加法字符:,和. 和所有
输入类型:电话。键盘:数字。输入按钮:发送/下一步。有情绪:没有。建议:没有。加法字符: *** # 。- / () WPN , +**
输入类型:textPersonName。键盘:字母/默认。输入按钮:发送/下一步。有情绪:是的。大小写:小写。建议:是的。加法字符:,和. 和所有
注意: Auto-capitalization
如以下屏幕截图所示设置将更改默认行为(True 为默认值,textCapWords 将按预期工作。False 将覆盖 textCapWords)
注 2:中Numeric keyboard
,所有数字均为英文 1234567890。
注意 3: Correction/Suggestion
设置会覆盖默认行为。
在任何情况下,我都选择了 textCapWords 作为新的输入类型,以确保每个单词都大写。将这种输入类型用于人名会有什么缺点吗?
在这里似乎没有任何问题,因为您只是将输入类型指定为大写字母的首字母,但它将允许输入多行。当您只需要一行带有人名时,这可能是一个缺点.
使用 textPersonName 作为输入类型有什么好处?
文本字段中的单行输入是将文本输入用作 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"
现在名称不会有红色下划线,第一个字母也将大写