switch (attribute.inputType & EditorInfo.TYPE_MASK_CLASS) {
case EditorInfo.TYPE_CLASS_NUMBER:
case EditorInfo.TYPE_CLASS_DATETIME:
case EditorInfo.TYPE_CLASS_PHONE:
mCurKeyboard = mSymbolsKeyboard;
break;
case EditorInfo.TYPE_CLASS_TEXT:
mCurKeyboard = mQwertyKeyboard;
}
这是什么意思?
我的测试结果是:
attribute.inputType = 17
EditorInfo.TYPE_MASK_CLASS = 15
它切换到
case EditorInfo.TYPE_CLASS_TEXT
即= 1
最佳答案
二进制的…
10001 // 17
01111 // 15
…运算符表示要匹配
&
,其中两者都是bits
。有点像这样…
10001 // 17
01111 // 15
-----
00001 // 17 & 15
只有两个数字的最后一个
1
匹配为bit
。