【发布时间】:2017-02-06 18:24:23
【问题描述】:
我需要帮助,我想以编程方式从谷歌软键盘中隐藏数字,并且只想要 CapsLock 上的字母,如您所见此链接http://www.androidcentral.com/how-add-dedicated-number-row-google-keyboard,它在键盘上方显示数字,我不想要。
我试过了:
edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()}); // for making capslock on
<EditText
android:id="@+id/firstName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textCapCharacters"
android:maxLength="10"/>
但数字仍然显示,用户也可以输入数字,我不需要,我需要用户只能输入字母 A 到 Z
我找到了一个解决方案,用户无法输入 number ,但它没有显示大写字母(软键盘上的 Caps ON)。
这是解决方案,它现在对我有用:感谢每个人的支持。
edittext.setFilters(new InputFilter[] {
new InputFilter() {
public CharSequence filter(CharSequence src, int start,
int end, Spanned dst, int dstart, int dend) {
if(src.equals("")){ // for backspace
return src;
}
if(src.toString().matches("[A-Z ]+")){
return src;
}
return "";
}
}
});
<EditText
android:id="@+id/firstName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textCapCharacters"
android:maxLength="10"/>
【问题讨论】:
-
onTextChangedListener中文字更改后可以将数字替换为空。 -
我认为用户可以写任何东西,但你可以用像
"^[A-Z]+"这样的正则表达式来检查它 -
更多用户可以安装自定义键盘,因此您无法控制键盘上显示的内容,但正如@DheerubhaiBansal 所说,您可以检查和处理用户写入的内容。
标签: android android-softkeyboard