inputtype decimal和signed value issue android

时间:2016-10-06 18:14:50

标签: android android-edittext android-inputtype

我使用了inputtype

android:inputType="numberDecimal|numberSigned"

我必须检查输入类型是否等于numberdecimal OR numbersigned然后不执行某些代码。

我找到了

的映射
//numberDecimal to InputType.TYPE_NUMBER_FLAG_DECIMAL (int 8192)
//numberSigned to     InputType.TYPE_NUMBER_FLAG_SIGNED (int 4096)

代码逻辑就像这样

if (inputType != InputType.TYPE_NUMBER_FLAG_DECIMAL
                        ||  inputType!=InputType.TYPE_NUMBER_FLAG_SIGNED)
{
                  // Some logic here
}

但即使inputtype是十进制数字或有符号数字,此代码仍会执行。  所以我检查了日志中inputType的值,即12290。

现在,如果我接受(4096 | 8192)的OR,那么该值将如何达到12290.它将以12288的形式出现。

 0001000000000000 (4096)
 0010000000000000 (8192)
 0011000000000000 (12288)

我应该对12290进行硬编码以满足这个条件吗?

1 个答案:

答案 0 :(得分:0)

12290 = "numberDecimal|numberSigned" = InputType.TYPE_NUMBER_FLAG_DECIMAL // 8192 + InputType.TYPE_NUMBER_FLAG_SIGNED // 4096 + InputType.TYPE_CLASS_NUMBER // 2