作为Android开发程序员我们都知道Android中的资源都是以整型值表示的,并保存在R.java的文件中。若我们在资源传值的时候
要求传layout资源型的函数,如果传入String资源值不会再编译期间报错,只会在运行时执行到相关的代码的时候才会出现问题,如果我们使用资源型注解就可以防止这种情况的出现了。
在我们的support-annotation-xxx中,每种资源类型对应一个注解。
下面我们来看下都有哪些:
- AnimatorRes:标记整型值是R.animator类型
- AnimRes:标记整型值是R.amin类型
- AnyRes:标记整型值是任何一种资源类型
- ArrayRes:标记整型值是R.array类型
- BoolRes:标记整型值是布尔类型
- ColorRes:标记整型值是R.color类型
- DrawableRes:标记整型值是R.drawable类型
- FractionRes:标记整型值是fraction类型
- IdRes:标记整型值是R.id(相信大家看到这应该知道如何使用了吧)
- IntegerRes:标记整型值是R.interpolator
- LayoutRes:.......R.layout
- MenuRes:.........R.menu
- PluralsRes:......R.plurals表示复数字符串类型
- RawRes:..........R.raw
- StringRes:........R.string
- StyleableRes:.......R.styleable
- StyleRes:..........R.style
- TransitionRes:.......transition
- XmlRes:.............R.xml
接下来我们来看个例子
@Override public void setContentView(@LayoutRes int layoutResID) { getDelegate().setContentView(layoutResID); }
大家应该很熟悉吧。
我们可以尝试改变下传入的参数试试
我们可以看到提示的是必须是layout的资源类型。利用这种注解方式设计出来的方法我们可以很清楚的知道所需要的什么类型的资源。有没有很棒,大家都来尝试下吧。