如何在Android中创建无多余符号的number-pad数字键盘
Android实现纯数字无额外符号键盘的实现方法
方案1:原生输入法配置(优先使用,开发成本最低)
直接对输入控件做属性配置即可,绝大多数场景下可以达到和iOS number-pad 一致的效果:
- 布局中给EditText添加属性:
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" android:digits="0123456789" />
- 属性说明:
android:inputType="number"指定唤起数字类输入法,避免弹出全键盘android:digits="0123456789"强制限定输入框仅接受0-9的数字,主流输入法会自动适配该规则,自动隐藏减号、逗号、小数点等不需要的符号
- 动态设置的代码示例:
// Kotlin editText.inputType = InputType.TYPE_CLASS_NUMBER editText.keyListener = DigitsKeyListener.getInstance("0123456789")
// Java editText.setInputType(InputType.TYPE_CLASS_NUMBER); editText.setKeyListener(DigitsKeyListener.getInstance("0123456789"));
方案2:自定义键盘(全设备兼容,无适配问题)
如果遇到部分定制ROM的第三方输入法不遵守digits规则,仍然显示多余符号,可以自己实现自定义键盘完全控制键位:
- 在res/xml目录下创建按键配置文件,定义0-9、删除键的布局与键值
- 布局中引入
KeyboardView控件,绑定自定义的按键配置 - 实现按键监听逻辑,处理输入、删除等操作即可
该方案可以100%还原你需要的纯数字键盘样式,不受系统输入法限制,适配所有Android设备。
内容的提问来源于stack exchange,提问作者CODEforDREAM
相关产品推荐
相关产品推荐

