民间,
我需要将每个句子的首字母大写。我按照这里发布的解决方案
First letter capitalization for EditText
如果我使用键盘,它会起作用。但是,如果我使用setText()以编程方式将文本添加到我的EditText中,则句子的第一个字母不会大写。
我错过了什么?有没有一种简单的方法可以解决,或者我需要编写代码来大写字符串中的第一个字母,然后再将其设置为EditText。
答案 0 :(得分:2)
inputType
标志唯一的作用是向输入法(例如键盘)建议用户尝试输入的内容。它与EditText视图本身的文本编辑内部无关,并且不需要输入方法来支持此标志。
如果您需要强制执行句子,您需要编写一个为您执行此操作的方法,并在应用之前通过此方法运行您的文本。
答案 1 :(得分:1)
您可以使用子字符串来实现此
private String capSentences( final String text ) {
return text.substring( 0, 1 ).toUpperCase() + text.substring( 1 ).toLowerCase();
}
答案 2 :(得分:0)
设置inputType
不会影响以编程方式放入字段的任何内容。值得庆幸的是,无论如何,以编程方式将首字母大写非常简单。
public static String capFirstLetter(String input) {
return input.substring(0,1).toUpperCase() + input.substring(1,input.length());
}