如何以编程方式将EditText的InputType设置为整数或小数?

use*_*962 13 android android-edittext android-inputtype

如何以编程方式配置EditText以允许:

  1. 正整数或负整数值

  2. 正或负十进制值

即使使用https://developer.android.com/reference/android/text/InputType.html,我也很难找到能够正常工作的内容

Anu*_*kar 32

您可以使用此代码:

EditText edt = new EditText(context);
edt.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); //for decimal numbers
edt.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED); //for positive or negative values
Run Code Online (Sandbox Code Playgroud)

如果在一起:

edt.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
Run Code Online (Sandbox Code Playgroud)


小智 11

如果有人需要,这是Kotlin的答案

et_text.inputType = InputType.TYPE_NUMBER_FLAG_SIGNED + InputType.TYPE_CLASS_NUMBER
Run Code Online (Sandbox Code Playgroud)

  • 应该是“或”运算符而不是“+”。所以正确的答案是 `et_text.inputType = InputType.TYPE_NUMBER_FLAG_SIGNED 或 InputType.TYPE_CLASS_NUMBER` (6认同)

小智 5

Kotlin的工作方式与 Java 没有什么不同

et_text.inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL
et_text.inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_SIGNED
Run Code Online (Sandbox Code Playgroud)