Android EditText - 使用setText()大写句子的第一个字母

时间:2014-07-24 18:00:30

标签: android android-edittext

民间,

我需要将每个句子的首字母大写。我按照这里发布的解决方案

First letter capitalization for EditText

如果我使用键盘,它会起作用。但是,如果我使用setText()以编程方式将文本添加到我的EditText中,则句子的第一个字母不会大写。

我错过了什么?有没有一种简单的方法可以解决,或者我需要编写代码来大写字符串中的第一个字母,然后再将其设置为EditText。

3 个答案:

答案 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());
}