http://blog.magicer.xyz/2017/...

官方提供了很多特别好用的类或注解,这里说的support annotation就是特别好的工具,多使用其中的注解,可以规范我们的开发,防止一些不必要的错误。要想使用support annotation需要手动添加依赖

compile 'com.android.support:support-annotations:25.2.0'

在这里面有几个对我们开发特别有用的注解:

  • @Nullable@NonNull

  • IntDef StringDef

  • 一些资源类的注解

这里是官方的教程

Nullable和NonNull

这两个注解还是蛮简单的。字面意思就能看的出来。用于变量,参数和返回值是否为空。
例如

public void foo(@NonNull String content){}

有这么一个方法,这时候如果我们将参数content的值传入了一个可能为空的值时,编辑器(AS)就会有所提示。

IntDef和StringDef

这两个主要是用来解决在Android中使用enum效率低的问题。这是官方的一个demo。在使用到enum的地方,都应该换成IntDefStringDef

import android.support.annotation.IntDef;
...
public abstract class ActionBar {...// Define the list of accepted constants and declare the NavigationMode annotation@Retention(RetentionPolicy.SOURCE)@IntDef({NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})public @interface NavigationMode {}// Declare the constantspublic static final int NAVIGATION_MODE_STANDARD = 0;public static final int NAVIGATION_MODE_LIST = 1;public static final int NAVIGATION_MODE_TABS = 2;// Decorate the target methods with the annotation@NavigationModepublic abstract int getNavigationMode();// Attach the annotationpublic abstract void setNavigationMode(@NavigationMode int mode);

资源类注解

通过自带的几个资源类注解,可以做到在代码中提示我们使用的资源是否正确。作用在参数上。
主要有@StringRes @DimenRes @IdRes @ColorRes @DrawableRes @AnimRes @AttrRes
@LayoutRes @MenuRes @RawRes等 各类资源的检查注解。
例如,在使用@StringRes之后,会检查该值是不是R.string的形式。

其他

要想查看更加详细的注解,就查看官方文档吧。官方文档讲的比我清楚明了。这里就是简单提一下,做个小笔记。

值约束注解

IntRange FloatRange等,详细看官方文档。这里的代码摘抄自官方文档

public void setAlpha(@IntRange(from=0,to=255) int alpha) { … }

Android Support Annotation的使用相关推荐

  1. android.support.annotation不存在

    迁移项目到AndroidX时,出现一个问题,如下: PublicMessageActivity_ViewBinding.java:4: 错误: 程序包android.support.annotatio ...

  2. Android Support Annotation Library使用详解

    概述 Support Annotation Library是在Android Support Library19.1版本开始引入的一个全新的函数包,它包含了诸多有用的元注解.用来帮助开发者在编译期间发 ...

  3. Android Support Annotation介绍

    在浏览Butter Knife源码时,发现里面用了好几个support包里的注解,比如@UiThread:当时一脸懵逼,第一次见到.再学习过后,今天,介绍下support包的注解.注解可以简化代码并提 ...

  4. Android 错误: 程序包android.support.annotation不存在

    在使用GlideApp时[创建继承glideapp类],make项目时,报错: 解决方案: 在app.gradle下添加如下依赖: implementation 'com.github.bumptec ...

  5. 程序包android.support.annotation不存在_我不知道我不了解的Redis知识

    "已知的东西: 有些事情我们知道我们知道. 我们也知道有未知的事物. 就是说我们知道有些事情我们不知道. 但是,还有未知的未知数-我们不知道的我们不知道的--后一类往往是困难的." ...

  6. 程序包android.support.annotation不存在_efcore技巧贴也许有你不知道的使用技巧

    前言 .net 环境近些年也算是稳步发展.在开发的过程中,与数据库打交道是必不可少的.早期的开发者都是DbHelper一撸到底,到现在的各种各样的ORM框架大行其道.孰优孰劣谁也说不清楚,文无第一武无 ...

  7. Android进阶系列之Support Annotation Library使用详解

    *本篇文章已授权微信公众号 hongyangAndroid (鸿洋)独家发布 在Android开发中,注解使用那是相当之频繁,对于没有了解过注解的猿友来说,看起来那是相当费劲儿.那今天我就来详细的瞅瞅 ...

  8. Android:你好,androidX!再见,android.support

    190325 补充:莫名问题的解决 181106 补充:修改未迁移成功的三方库 1.AndroidX简介 点击查看Android文档中对androidx的简介 按照官方文档说明 androidx 是对 ...

  9. Android Support Annotations用法

    Android Support库是官方出的支持扩展库,包含了丰富的组件.工具类等,通过在Android SDK Manager中勾选以下两项来获取到.    其中,Android Support Li ...

最新文章

  1. 【JZOJ5064】【GDOI2017第二轮模拟day2】友好城市 Kosarajo算法+bitset+ST表+分块
  2. c++ Resource file and Source file
  3. linux快捷命令怎么拼日期,liunx常用命令,快捷键
  4. nginx 的 rewrite 模块
  5. 无线电频段属国家资源,不是你想用就能用
  6. 面试官系统精讲Java源码及大厂真题 - 25 整体设计:队列设计思想、工作中使用场景
  7. Ubuntu18.04 LTS Melodic ROS 教程:使用URDF创建一个虚拟机器人模型
  8. 【COGS2652】—天文密葬法(分数规划+长链剖分)
  9. 遍历枚举,添加进DropDownist
  10. 存储系统的三种分类及KV模型
  11. k8s安装sqlite3_使用sqlite3步骤
  12. EF – 4.CRUD与事务
  13. STM32库函数 断言机制 宏定义assert_param(expr)和assert_failed的使用方法
  14. sbit和sfr的定义
  15. Unity Plastic SCM (无法托管/当前仓库地址错误/创建新项目无法托管/由于目标计算机积极无法连接)
  16. Python入门数学类编程——抛物运动
  17. php 月柱计算,月柱推算
  18. Stratum mining protocol
  19. jdk11手动安装jre
  20. 兽医提醒:狗狗生病的9个征兆,建议铲屎官收藏,以备不时之需!

热门文章

  1. 网页制作之CSS超级技巧
  2. Python-字符串的常用方法
  3. 设计模式的七大设计原则:其三:依赖倒转原则
  4. 手机号归属地_【号码归属地查询工具】
  5. JUnit5 @Tag注解示例
  6. sf | 空间矢量对象的属性连接方法
  7. linux新建用户不显示,linux系统无法添加用户帐号的原因分析
  8. 初学者应该怎么学习前端?web前端的学习路线大剖析
  9. 8年web前端开程序媛,告诉你如何零基础学习web前端
  10. 绝对干货!纯用HTML+CSS+JS 编写的计算器应用