【问题标题】:Android EditText - Capitalize first letter of sentences using setText()Android EditText - 使用 setText() 将句子的首字母大写
【发布时间】:2014-09-16 10:18:42
【问题描述】:

伙计们,

我需要将每个句子的首字母大写。我遵循了此处发布的解决方案

First letter capitalization for EditText

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

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

【问题讨论】:

  • 您是否将句子存储在字符串中?如果是这样,你可以试试here
  • 1 - 将字符串大写。 2 - 将其分配给 EditText
  • 使用此处的答案stackoverflow.com/questions/16078479/… 将您要设置的字符串大写。然后将该字符串设置为视图。您尝试的大写模式只是对键盘的提示,告诉它如何解释输入。

标签: android android-edittext


【解决方案1】:

inputType 标志的唯一作用是向输入法(例如键盘)建议用户尝试输入的内容。它与 EditText 视图本身的文本编辑内部无关,输入法也不需要支持此标志。

如果您需要强制执行句子大小写,您需要编写一个为您执行此操作的方法,并在应用之前通过此方法运行您的文本。

【讨论】:

    【解决方案2】:

    你可以使用子字符串来做这个

    private String capSentences( final String text ) {
    
        return text.substring( 0, 1 ).toUpperCase() + text.substring( 1 ).toLowerCase();
    }
    

    【讨论】:

      【解决方案3】:

      设置inputType 不会影响以编程方式放入该字段的任何内容。值得庆幸的是,无论如何,以编程方式将第一个字母大写非常容易。

      public static String capFirstLetter(String input) {
          return input.substring(0,1).toUpperCase() + input.substring(1,input.length());
      }
      

      【讨论】:

        猜你喜欢
        • 2011-06-16
        • 1970-01-01
        • 2015-01-25
        • 2018-06-14
        • 1970-01-01
        • 2017-03-30
        • 1970-01-01
        • 1970-01-01
        • 2021-07-23
        相关资源
        最近更新 更多