我已阅读 Android: Limiting EditText to numbers和 How do I show the number keyboard on an EditText in android? .不幸的是,它们似乎都不符合我的需求。
我想将我的 EditText 输入限制为仅限数字。但是,我也希望允许有符号和/或十进制输入。
这是我当前的代码(我需要以编程方式执行此操作):
EditText edit = new EditText(this);
edit.setHorizontallyScrolling(true);
edit.setInputType(InputType.TYPE_CLASS_NUMBER);
有了这个,我的 EditText 愉快地将所有输入限制为数字。不幸的是,它不允许任何其他内容,例如小数点。
如果我将该行更改为 edit.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL)
,EditText 将接受所有输入(这不是我想要的......)。
我尝试过组合标志(绝望地想看看它是否可行):
edit.setInputType(InputType.TYPE_CLASS_NUMBER);
edit.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL)
edit.setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED)
这也不起作用(EditText 像往常一样接受所有输入)。
那么,我该怎么做呢?
最佳答案
没有理由使用setRawInputType()
,只需使用setInputType()
。但是,您必须将类和标志与 OR 运算符结合起来:
edit.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
关于android - 如何将我的 EditText 输入限制为数字(可能是十进制和有符号)输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6919360/