Android @Intdef 用于标记如何使用它
Android @Intdef for flags how to use it
我不清楚如何使用 @Intdef 将它设为这样的标志:
@IntDef(
flag = true
value = {NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})
此示例直接来自 docs。这到底是什么意思?这是否意味着所有这些最初都设置为 true ?如果我对以下内容执行 "or":
NAVIGATION_MODE_STANDARD | NAVIGATION_MODE_LIST
这是什么意思...我对这里发生的事情有点困惑。
使用 IntDef#flag() 属性设置为 true,可以组合多个常量。
用户可以将允许的常量与标志(例如 |、&、^ )结合起来。
例如:
public static final int DISPLAY_OP_1 = 1;
public static final int DISPLAY_OP_2 = 1<<1;
public static final int DISPLAY_OP_3 = 1<<2;
@IntDef (
flag=true,
value={
DISPLAY_OP_1,
DISPLAY_OP_2,
DISPLAY_OP_3
}
)
@Retention(RetentionPolicy.SOURCE)
public @interface DisplayOptions{}
public void setIntDefFlag(@DisplayOptions int ops) {
...
}
并使用 setIntDefFalg()
和“|”
setIntDefFlag(DisplayOptions.DISPLAY_OP1|DisplayOptions.DISPLAY_OP2);
我不清楚如何使用 @Intdef 将它设为这样的标志:
@IntDef(
flag = true
value = {NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})
此示例直接来自 docs。这到底是什么意思?这是否意味着所有这些最初都设置为 true ?如果我对以下内容执行 "or":
NAVIGATION_MODE_STANDARD | NAVIGATION_MODE_LIST
这是什么意思...我对这里发生的事情有点困惑。
使用 IntDef#flag() 属性设置为 true,可以组合多个常量。
用户可以将允许的常量与标志(例如 |、&、^ )结合起来。
例如:
public static final int DISPLAY_OP_1 = 1;
public static final int DISPLAY_OP_2 = 1<<1;
public static final int DISPLAY_OP_3 = 1<<2;
@IntDef (
flag=true,
value={
DISPLAY_OP_1,
DISPLAY_OP_2,
DISPLAY_OP_3
}
)
@Retention(RetentionPolicy.SOURCE)
public @interface DisplayOptions{}
public void setIntDefFlag(@DisplayOptions int ops) {
...
}
并使用 setIntDefFalg()
和“|”
setIntDefFlag(DisplayOptions.DISPLAY_OP1|DisplayOptions.DISPLAY_OP2);