我有一个TextView对象,其目的是输入一个人的名字。我查看here并看到textPersonName
是输入类型。所以我选择了那种输入类型,认为它可以做我想要的。
但是,此输入类型不会将首字母大写。由于人们的名字以大写字母开头,我发现这很奇怪。这是故意的吗,还是Google的设计疏忽?
无论如何,我选择了textCapWords
作为新的输入类型,以确保每个单词都开始大写。将此输入类型用于某个人的名字会有任何不利之处吗?使用textPersonName
作为输入类型有什么好处?
答案 0 :(得分:37)
您可以使用|
(或)运算符组合inputType属性。
http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType
放置在文本字段中的数据类型,用于帮助输入法决定如何让用户输入文本。这里的常量对应于InputType定义的常量。通常,您可以选择单个值,但有些值可以按指示组合在一起。将此属性设置为除none之外的任何内容也意味着文本是可编辑的。
必须是以下常量值中的一个或多个(以“|”分隔)。
因此,要将textPersonName
与textCapWords
的优势结合起来,只需使用以下语法设置输入类型:
android:inputType="textPersonName|textCapWords"
此answer简要说明了将textPersonName用于名称输入字段的好处。
答案 1 :(得分:11)
inputype
小部件中的 EditText
属性:(在Android 4.4.3和2.3.3上测试)
<EditText android:id="@+id/et_test" android:inputType="?????"/>
inputType: textLongMessage 。键盘:字母/默认。输入按钮:发送/下一步。有感情:是的。案例:小写。建议:是的。添加字符:,和。以及所有内容
inputType: textFilter 。键盘:字母/默认。输入按钮:发送/下一步。有感情:是的。案例:小写。 建议:否。添加字符:,和。以及所有内容
inputType: textCapWords 。键盘:字母/默认。输入按钮:发送/下一步。有感情:是的。 案例:骆驼案。建议:是的。添加字符:,和。以及所有内容
inputType: textCapSentences 。键盘:字母/默认。输入按钮:发送/下一步。有感情:是的。 案例:判刑案件。建议:是的。添加字符:,和。以及所有内容
inputType:时间。键盘:数字。输入按钮:发送/下一步。有感情:没有。 建议:否。加法字符:
inputType: textMultiLine 。键盘:字母/默认。 输入按钮:下一行。有感情:是的。案例:小写。建议:是的。添加字符:,和。以及所有内容
inputType:数字。 键盘:数字。输入按钮:发送/下一步。有感情:没有。建议:没有。 添加字符:没有
inputType: textEmailAddress 。键盘:字母/默认。输入按钮:发送/下一步。 有感情:没有。案例:小写。 建议:否。添加字符: @ 和。以及所有内容
inputType:(无类型)。键盘:字母/默认。 输入按钮:下一行。有感情:是的。案例:小写。建议:是的。添加字符:,和。以及所有内容
inputType: textPassword 。键盘:字母/默认。输入按钮:发送/下一步。有感情:没有。案例:小写。 建议:否。添加字符:,和。以及所有内容
inputType:文字。键盘:键盘:字母/默认。输入按钮:发送/下一步。有感情:是的。案例:小写。建议:是的。添加字符:,和。以及所有内容
inputType: textShortMessage 。键盘:字母/默认。 输入按钮:情感。有感情:是的。案例:小写。建议:是的。添加字符:,和。以及所有内容
inputType: textUri 。键盘:字母/默认。输入按钮:发送/下一步。有感情:没有。案例:小写。 建议:否。添加字符: / 和。以及所有内容
inputType: textCapCharacters 。键盘:字母/默认。输入按钮:发送/下一步。有感情:是的。 案例:大写。建议:是的。添加字符:,和。以及所有内容
inputType:手机。 键盘:数字。输入按钮:发送/下一步。有感情:没有。 建议:否。加法字符: *#。 - /()W P N,+
inputType: textPersonName 。键盘:字母/默认。输入按钮:发送/下一步。有感情:是的。案例:小写。建议:是的。添加字符:,和。以及所有内容
注意: Auto-capitalization
设置将更改默认行为。
注2:在Numeric keyboard
中,所有数字均为英文1234567890。
注3: Correction/Suggestion
设置会覆盖默认行为。
答案 2 :(得分:2)
无论如何,我选择了textCapWords作为新的输入类型 确保每个单词都开始大写。会不会有 将这种输入类型用于某个人的名字是不利的吗?
这里似乎没有任何问题,因为你只是更改输入类型,将其指定为Capital的首字母,但它将允许输入多行。当你只需要一行时,这可能是一个缺点一个人的名字。
使用textPersonName作为输入类型有什么好处?
文本字段中的单行条目是将文本输入用作textPerson的优势。
答案 3 :(得分:1)
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);
}
});
}
答案 4 :(得分:1)
使用android:inputType="textPersonName"
时未执行拼写检查,但已在**textCapWords**
因此,如果你使用textPersonName
,那么名字不会是红色下划线,但每个名字的首字母(名字,中间名,姓氏等)都不会被大写
所以最好的解决方案是将两者结合使用或
那是android:inputType="textPersonName|textCapWords"
现在不会有红色下划线的名称,第一个字母也会被大写