Android 编辑文本 - 输入类型编号未设置最大值

Android Edit Text - Input Type Number not setting max value

所以我想要的是一个非常简单的编辑文本,输入类型为数字或小数,具有以下方面。

编号编辑文字:
您最多只能输入 Long.MAX_VALUE / Long.MIN_VALUE,因此我可以在不修改用户输入的情况下转换为 long

数字十进制编辑文本:
您只能键入可转换为 double.

的数字

另外我不需要使用 BigDecimal 或 BigIntegers,我需要原始值。 最后,我知道这已经被问到 here 但这不是我想要的。有一些不同的要求。

我设法通过自定义 class 扩展 EditText 来实现,它在构造函数中添加了 TextWatcher。在 afterTextChanged 方法中,它尝试将其转换为长整数。如果失败 (NumberFormatException),它将数字设置为相应的最小值/最大值(基于数字开头的“-”符号)。