android.support.annotation
Annotation Type IntDef


@Retention(value=CLASS)
@Target(value=ANNOTATION_TYPE)
public @interface IntDef

Denotes that the annotated element of integer type, represents a logical type and that its value should be one of the explicitly named constants. If the IntDef#flag() attribute is set to true, multiple constants can be combined.

Example:

@Retention(CLASS)
  @IntDef({NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})
  public @interface NavigationMode {}
  public static final int NAVIGATION_MODE_STANDARD = 0;
  public static final int NAVIGATION_MODE_LIST = 1;
  public static final int NAVIGATION_MODE_TABS = 2;
  ...
  public abstract void setNavigationMode(@NavigationMode int mode);
  @NavigationMode
  public abstract int getNavigationMode();
 
For a flag, set the flag attribute:
@IntDef(
      flag = true
      value = {NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})
 


Optional Element Summary
 boolean flag
          Defines whether the constants can be used as a flag, or just as an enum (the default)
 long[] value
          Defines the allowed constants for this element
 

value

public abstract long[] value
Defines the allowed constants for this element

Default:
{}

flag

public abstract boolean flag
Defines whether the constants can be used as a flag, or just as an enum (the default)

Default:
false