有没有办法达到如下图像? 我有一个EditText,我希望InputType始终是Caps。 我试过用这个
android:inputType="textCapCharacters"
它的工作正常,但当我按下软键盘中的顶部箭头图标(如下图所示)并开始输入文字将是小字符。有没有办法禁用顶部箭头键?
由于
答案 0 :(得分:5)
您可以通过以下代码执行此操作:
将UpperCase应用为EditText的唯一过滤器
这里我们将UpperCase过滤器设置为EditText的唯一过滤器。请注意,这样做是为了删除所有以前添加的过滤器(maxLength,maxLines等)。
editText.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
将UpperCase添加到EditText的现有过滤器
要保留已经应用的EditText过滤器(让我们说maxLines,maxLength等),您需要检索应用的过滤器,将UpperCase过滤器添加到这些过滤器,然后将它们设置回EditText。以下是一个示例:
InputFilter[] editFilters = editText.getFilters();
InputFilter[] newFilters = new InputFilter[editFilters.length + 1];
System.arraycopy(editFilters, 0, newFilters, 0, editFilters.length);
newFilters[editFilters.length] = new InputFilter.AllCaps();
editText.setFilters(newFilters);
答案 1 :(得分:1)
对我有用, 试试这个
edittext.setInputType(InputType.TYPE_CLASS_TEXT);
edittext.setFilters(new InputFilter[]{new InputFilter.AllCaps()});
答案 2 :(得分:0)
您可以控制直接响应用户操作的键盘输入。 请检查此link
答案 3 :(得分:0)
是的,您可以通过编程方式进行设置。 Android内置了IntentFilter。
您可以使用以下代码实现此目的:
editText.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
但是,有一个问题,setFilters将重置通过XML设置的所有其他属性(如maxLines,inputType和其他)
所以,你需要像这样设置过滤器,
InputFilter[] editFilters = <EditText>.getFilters();
InputFilter[] newFilters = new InputFilter[editFilters.length + 1];
System.arraycopy(editFilters, 0, newFilters, 0, editFilters.length);
newFilters[editFilters.length] = new InputFilter.AllCaps();
//you can use another filter like for maxLength you can use
// newFilters[editFilters.length] = new InputFilter.LengthFilter(10);
<EditText>.setFilters(newFilters);
有关信息,请参阅here
这对你有用。
答案 4 :(得分:0)
是你可以做那样的事情
如果小写字母将其转换为高位字母,您可以检查用户输入的每个字母
例如: -
如果用户输入 e ,请将其替换为 E