如何找出与Imeoptions一起使用的操作和/或标志



在以下代码中:

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
}

相关内容

  • 没有找到相关文章

最新更新