如何通过编程方式调起带%符号的数字软键盘且不显示字母按键
可行解决方案
方案1:低适配成本方案(适配大部分场景)
在原有数字输入类型的基础上,指定允许输入的字符包含%,绝大多数原生系统软键盘会自动适配,在数字键盘区域展示百分号按键:
Java代码配置:
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); editText.setKeyListener(DigitsKeyListener.getInstance("0123456789.%"));
也可以直接在XML布局中配置:
<EditText android:id="@+id/percent_input" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" android:digits="0123456789.%" />
方案2:全场景兼容方案
由于不同厂商定制ROM、第三方输入法的实现逻辑存在差异,部分输入法不会根据允许的字符列表调整显示的按键。如果需要100%保证软键盘仅显示数字、小数点、百分号,没有多余的字母按键,可以自行实现简易自定义软键盘:
- 只布局需要的按键:0-9数字、
.、%、删除键、确认键 - 绑定EditText输入事件,点击按键时直接插入对应字符到输入框即可,完全不需要依赖系统软键盘,可控性最高。
内容的提问来源于stack exchange,提问作者Alireza Noorali
相关产品推荐
相关产品推荐

