如何找出与 imeOptions 一起使用的操作 and/or 标志?

How to find out what action and/or flag is used with 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 中使用了哪个 action/flag?

我试图读取这个数字,但我发现它是一个很长的数字,类似于:301216460

我发现设置此值是使用 &|:

outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT;

我找到了如何确定 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
}

我认为在这里使用按位运算符不是一个好主意我的兄弟,而不是你可以检查你的输入变量,不管它是什么,例如:

if (editText.getImeOptions() == EditorInfo.IME_ACTION_NEXT)
    //do it
else
    //not this time.