android edittext numberdecimal,android – 如何在“手机”软键盘上使用InputType = numberDecimal?...

博主寻求解决方案,希望在EditText中实现只允许输入数字的功能,同时使用包含美元符号、百分比等符号的手机式软键盘,以提高输入效率。尝试过多种输入类型配置,但未找到有效方法来同时限制输入范围并保持全键盘支持。
摘要由CSDN通过智能技术生成

对于EditText框,用户只能输入有效的数字,所以我使用的是android:inputType =“numberDecimal”。不幸的是,Android带来的软键盘的数字只有顶排,而接下来的3行有各种其他符号(美元符号,百分号,感叹号,空格等)。由于numberDecimal仅接受数字0-9,负号和小数点,所以使用“手机”软键盘(3×3网格中的0-9加上其他符号)会更有意义。这将使按钮更大更容易击中(因为它是一个4×4网格而不是同一屏幕区域中的10×4网格)。不幸的是,使用android:inputType =“phone”可以允许非数字字符,如括号

我试图使用android:inputType =“numberDecimal | phone”,但是bit标志的numberDecimal方面似乎被忽略。我也尝试使用android:inputType =“phone”与android:digits =“0123456789-”组合使用,但仍然允许多个负号或小数点(inputType =“number”对于像这样的事情有很好的错误检查,并且不会让用户甚至键入它)。我也尝试在xml布局文件中使用android:inputType =“phone”,而在java代码中使用DigitsKeyListener,但是只是使用默认的数字软键盘(只有顶部的数字键盘)似乎设置InputType.TYPE_CLASS_NUMBER,这将使由xml布局设置的InputType.TYPE_CLASS_PHONE无效)。

编写自定义IME将不起作用,因为用户必须在应用程序之外选择IME作为全局选项。

有没有办法使用“手机”式的软键盘,同时也使用“数字”限制进入什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值