• Cmn
    @Retention(value = AnnotationRetention.SOURCE)
    @Target(allowedTargets = [AnnotationTarget.ANNOTATION_CLASS])
    annotation 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(SOURCE)
@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}
)
See also
LongDef

Summary

Public constructors

IntDef(vararg value: Int, flag: Boolean, open: Boolean)
Cmn

Public properties

Boolean

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

Cmn
Boolean

Whether any other values are allowed.

Cmn
IntArray

Defines the allowed constants for this element

Cmn

Public constructors

IntDef

IntDef(vararg value: Int = [], flag: Boolean = false, open: Boolean = false)

Public properties

flag

val flagBoolean

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

open

val openBoolean

Whether any other values are allowed. Normally this is not the case, but this allows you to specify a set of expected constants, which helps code completion in the IDE and documentation generation and so on, but without flagging compilation warnings if other values are specified.

value

val valueIntArray

Defines the allowed constants for this element