setFocusable和setFocusableInTouchModeAndroid视图有什么区别?
尝试阅读文档后的其他问题:
这些isFocusable与isFocusableInTouchMode?有什么不同?
我正在尝试创建一个EditText自动大写和自动更正实现.我已经手动想出如何添加InputFilters以允许自动大写,虽然这仅在键入第一个字母后才有效,而且我没有运气自动校正(我试图创建一个使用的InputFilter AutoText,但我不是确定这一切是如何工作的).理想情况下,我可以使用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);
Run Code Online (Sandbox Code Playgroud)
请注意,我只对EditText在代码中创建此代码的解决方案感兴趣- 而不是通过XML.
编辑
我找到了描述TextKeyListener的声音新文档,但是在尝试使用它之后:
mEditText.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.CHARACTERS, true));
Run Code Online (Sandbox Code Playgroud)
并且使用@ farble1670的使用思路setRawInputType,以免影响KeyListeners,文本仍然没有变化.
我发现了许多有关将编辑文本设置为readOnly或可编辑的问题,但是所有这些问题仅适用于某些特定情况。我需要以下功能:
可编辑的Edittext小部件应以编程方式设置为只读。如果为只读,则不可能输入数据,但应选择当前内容进行复制。应该将相同的字段设置回与以前相同的可编辑状态,因此允许输入并选择要复制/粘贴的文本。
这是我当前的代码:
if (readOnly)
{
_text.setTextColor(Color.GRAY);
_keyListener = _text.getKeyListener();
_text.setKeyListener(null);
}
else
{
_text.setTextColor(_foreground);
if (_keyListener != null)
{
_text.setKeyListener(_keyListener);
}
_text.setFocusable(true);
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以下方法:
setTextIsSelectable()只读部分。这样可以在只读字段中选择文本。但是,如果我将其更改回可编辑状态,则该字段仍然只能选择。我想我忘记设置某种侦听器或属性。也许你们当中的一个知道那是哪一个。
编辑:尝试以下操作:
在android中禁用EditText,
但它仅在我不会使用setTextIsSelectable()来使只读文本变为可选择状态时才有效。如果我设置了该值并切换回可编辑状态,则该字段只能选择,而不能编辑。
谢谢