我使用了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进行硬编码以满足这个条件吗?
答案 0 :(得分:0)
12290 = "numberDecimal|numberSigned"
= InputType.TYPE_NUMBER_FLAG_DECIMAL // 8192
+ InputType.TYPE_NUMBER_FLAG_SIGNED // 4096
+ InputType.TYPE_CLASS_NUMBER // 2