在以下代码中:
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
// What is included in the outAttrs.imeOptions
return inputConnection ;
}
outAttrs.imeOptions
是代表EditorInfo
操作和标志的整数值。
如何检测outAttrs.imeOptions
中使用的操作/标志?
我试图阅读数字,但我发现这是一个长数字,例如: 301216460
我发现设置此值是使用&
和|
完成的:
outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT;
我认为在这里使用位运算符不是一个好主意,而不是您可以检查输入变量,例如:
if (editText.getImeOptions() == EditorInfo.IME_ACTION_NEXT)
//do it
else
//not this time.
我找到了如何确定imeOptions
值中是否包含操作或标志。
检查 EditorInfo.IME_ACTION_NEXT
是否包含在imeOptions
值中:
if ((imeOptions & EditorInfo.IME_ACTION_NEXT) == EditorInfo.IME_ACTION_NEXT) {
// imeOptions includes EditorInfo.IME_ACTION_NEXT
} else {
// imeOptions does not include EditorInfo.IME_ACTION_NEXT
}