android注解

android注解:
通过android.support.annotation库:

  1. NonNull不为空:
    成员变量、局部变量、参数、方法返回
@NonNull    //控制结果
public View xxx(String name, @NonNull Context context,//控制参数
  @NonNull AttributeSet attrs) {
  ...
}
  1. CallSuper 注解:
@CallSuper
protected void onCreate(Bundle savedInstanceState) {
}
  1. keep注解
    注解可以确保如果在构建时缩减代码,标注的元素不会移除。它一般会添加到通过反射访问的方法和类中,以阻止编译器将代码视为未使用。

  2. 资源注解:
    @StringRes
    @DrawableRes
    @DimenRes
    @ColorRes
    @AnyRes 任意类型R资源
    @InterpolatorRes 插值器资源

  3. 线程注解:
    @MainThread / @UiThread
    @WorkerThread
    @BinderThread
    @AnyThread

  4. 值约束注解:
    @IntRange (@IntRange(from=0,to=255) int alpha)
    @FloatRange
    @Size 注解可以检查集合或数组的大小,以及字符串的长度。

  • 最小大小(例如 @Size(min=2))
  • 最大大小(例如 @Size(max=2))
  • 确切大小(例如 @Size(2))
  • 表示大小必须为此倍数的数字(例如 @Size(multiple=2))
  1. 权限注解
    @RequiresPermission
  1. Typedef 注解
    使用 @IntDef 和 @StringDef 注解,以便能够创建整型和字符串集的枚举. flag属性标明是否可以位运算
//先定义常量
public static final int NAVIGATION_MODE_STANDARD = 0;
public static final int NAVIGATION_MODE_LIST = 1;
public static final int NAVIGATION_MODE_TABS = 2;


@Retention(RetentionPolicy.SOURCE)
@IntDef({NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})
public @interface NavigationMode {}


@NavigationMode  //指定返回结果
public abstract int getNavigationMode();

public abstract void setNavigationMode(@NavigationMode int mode);//指定参数

//示例2带flag

@IntDef(flag=true, value={
        DISPLAY_USE_LOGO,
        DISPLAY_SHOW_HOME,
        DISPLAY_HOME_AS_UP,
        DISPLAY_SHOW_TITLE,
        DISPLAY_SHOW_CUSTOM
})
@Retention(RetentionPolicy.SOURCE)
public @interface DisplayOptions {}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容