如何将 Android EditText 中的每个字母大写?

新手上路,请多包涵

我有一组 editTexts,我是这样制作的:

         inputs[i] = new EditText(this);
        inputs[i].setWidth(376);
        inputs[i].setInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);
        tFields.addView(inputs[i]);

我希望每个字符都大写。现在,第一个单词的第一个字母是小写的,那么后面的所有字符都是大写的。我可以在用户输入完成后将其转换为大写,但这并不是我真正想要的。有没有办法让这些字段按照我希望的方式运行?

原文由 clavio 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 685
2 个回答

您还需要告诉它它来自“类”文本:

 inputs[i] = new EditText(this);
inputs[i].setWidth(376);
inputs[i].setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);
tFields.addView(inputs[i]);

输入类型位掩码。您可以通过放置 | 来组合标志中间的(管道)字符,代表 OR 逻辑函数,即使在像这样的位掩码中使用时,它的意思是“这个标志和另一个标志”。

(这个答案与 Robin 的答案相同,但没有“幻数”,这是您可以在代码中放入的最糟糕的东西之一。Android API 有常量,使用它们而不是复制值并冒着最终破坏代码的风险。)

原文由 tiktak 发布,翻译遵循 CC BY-SA 3.0 许可协议

这将使所有字符在书写时变为大写。

 edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()});

原始答案 在这里

原文由 jzeferino 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题