Android @Intdef для флагов, как использовать его

Я не понимаю, как использовать @Intdef при создании этого флага:

@IntDef( flag = true value = {NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS}) 

Этот пример прямо из документов . Что это значит? Означает ли это, что изначально они установлены в true? Если я делаю «или» на следующем:

 NAVIGATION_MODE_STANDARD | NAVIGATION_MODE_LIST 

Что это значит … им немного смущает то, что здесь происходит.

Solutions Collecting From Web of "Android @Intdef для флагов, как использовать его"

Установите флаг @IntDef, затем вы можете использовать битовые операции для объединения этих флагов int (например, |, & …).

Пример Fox:

 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);