- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
对于 EditText
框,用户应该只输入有效数字,所以我使用的是 android:inputType="numberDecimal"
。不幸的是,Android 提供的软键盘只有顶行有数字,而接下来的三行有各种其他符号(美元符号、百分号、感叹号、空格等)。由于 numberDecimal
只接受数字 0-9、负号和小数点,因此使用“电话”软键盘(3x3 网格中的 0-9,加上一些其他符号)会更有意义。这将使按钮更大,更容易点击(因为它是 4x4 网格,而不是同一屏幕区域中的 10x4 网格)。不幸的是,使用 android:inputType="phone"
允许使用括号等非数字字符
我尝试使用 android:inputType="numberDecimal|phone"
,但位标志的 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 作为应用程序外部的全局选项。
有什么方法可以使用“电话”式软键盘,同时对输入的内容使用“数字”限制?
最佳答案
我遇到了同样的问题。这对我有用:
<item name="android:inputType">numberDecimal</item>
<item name="android:digits">0123456789.</item>
希望这对您有所帮助。
关于android - 如何将 InputType=numberDecimal 与 "phone"软键盘一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2830664/
我是一名优秀的程序员,十分优秀!