如何在 EditText 中输入“负十进制数”?
Posted
技术标签:
【中文标题】如何在 EditText 中输入“负十进制数”?【英文标题】:How to enter a "Negative Decimal Number" in EditText? 【发布时间】:2013-07-22 15:30:51 【问题描述】:我正在制作一个计算器,并且我想确保用户能够输入“负十进制数” 我在 xml 文件中分别看到了该选项,例如为了放置十进制数,EditText 的 inputType 必须是numberDecimal 和负数 inputType 必须是“numberSigned”,但我需要两者。如果我选择 inputType 作为“文本”,那么如果不是数字,用户就可以输入任何引发异常的内容。我也不确定如何解决这个问题。
【问题讨论】:
【参考方案1】:您可以将两者与“|”一起使用操作员。只需指定“numberSigned|numberDecimal”。
【讨论】:
请注意,即使在使用逗号的国家/地区,某些键盘(例如三星股票)也会始终提供点作为小数分隔符。在键盘固定之前,没有办法解决它。请参阅此处了解我的解决方法:***.com/a/51983392/238664【参考方案2】:在EditText
的布局中添加这个:
android:digits="0123456789-."
您可以在此处指定更多内容,例如,如果您希望用户输入sin()
函数。
【讨论】:
【参考方案3】:正如@a11n 所说,您可以使用管道运算符来指定两者:
<EditText
...
android:inputType="numberSigned|numberDecimal"
... />
有效数字:正负小数和整数。
【讨论】:
【参考方案4】:有些手机在同一个按钮上有小数点和负数,所以不能做负数。我想出了一种方法,您可以通过简单地添加来分隔按钮:
android:inputType="numberSigned|numberDecimal|textPersonName"
android:digits="0123456789.-"
这样你仍然有数字键盘布局,但负数和小数按钮将是分开的,你不能使用任何其他数字来搞乱应用程序。
【讨论】:
以上是关于如何在 EditText 中输入“负十进制数”?的主要内容,如果未能解决你的问题,请参考以下文章