我试图创建一个已实现自动大写和自动纠正的EditText
。我已经手动找出如何添加InputFilter
以允许自动大写,但这仅在输入第一个字母后才起作用,并且我尝试使用AutoText
创建了一个InputFilter
来进行自动纠正,但我不确定它是如何工作的。理想情况下,我可以使用EditText.setInputType(...)
处理一切,但到目前为止,这并没有起作用。有没有办法实现这个功能?我的失败尝试如下所示(我只得到普通的输入)。
EditText mEditText = new EditText(this);
int inputType = InputType.TYPE_CLASS_TEXT;
if (auto_capitalize) {
inputType = mEditText.getInputType() | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS;
}
if (auto_correct) {
inputType = mEditText.getInputType() | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT;
}
mEditText.setInputType(inputType);
请注意,我只对通过代码创建此EditText
的解决方案感兴趣-而不是通过XML。
编辑
我发现了一些新的文档,描述了TextKeyListener,但是在尝试使用它后:
mEditText.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.CHARACTERS, true));
并且使用 @farble1670 的setRawInputType
的想法,以便不影响 KeyListener
s,但文本仍然没有变化。
XML
解决方案。 - Phil