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

How to programmatically set EditText's InputType to integer or decimal?

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

  1. Positive or negative integer values

  2. Positive or negative decimal values

即使使用 https://developer.android.com/reference/android/text/InputType.html

,我也很难找到它的工作原理

您需要在Androidmenifest.xml

中添加android:inputType="number"

或前往:How to force EditText to accept only numbers?

您可以使用此代码:

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

如果在一起:

edt.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);

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

et_text.inputType = InputType.TYPE_NUMBER_FLAG_SIGNED + InputType.TYPE_CLASS_NUMBER

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