Resources - WonderCsabo/androidannotations GitHub Wiki
Since AndroidAnnotations 1.0
All @XXXRes
annotations indicate that an activity field should be injected with the corresponding Android resource from your res
folder. The resource id can be set in the annotation parameter, ie @StringRes(R.string.hello)
.
If the resource id is not set, the name of the field will be used. The field must not be private.
@StringRes
The @StringRes
annotation can be used to retrieve string resources.
Usage example:
@EActivity
public class MyActivity extends Activity {
@StringRes(R.string.hello)
String myHelloString;
@StringRes
String hello;
}
@ColorRes
The @ColorRes
annotation can be used to retrieve color resources.
Usage example:
@EActivity
public class MyActivity extends Activity {
@ColorRes(R.color.backgroundColor)
int someColor;
@ColorRes
int backgroundColor;
}
@AnimationRes
@AnimationRes
can be used to inject XmlResourceParser
fields (not very useful) or Animation
fields (much more interesting).
Usage example:
@EActivity
public class MyActivity extends Activity {
@AnimationRes(R.anim.fadein)
XmlResourceParser xmlResAnim;
@AnimationRes
Animation fadein;
}
@DimensionRes
The @DimensionRes
annotation can be used to retrieve dimension resources.
Usage example:
@EActivity
public class MyActivity extends Activity {
@DimensionRes(R.dimen.fontsize)
float fontSizeDimension;
@DimensionRes
float fontsize;
}
@DimensionPixelOffsetRes
The @DimensionPixelOffsetRes
annotation can be used to retrieve dimension resources.
Retrieves the dimension to its final value as an integer pixel offset. This is the same as @DimensionRes, except the raw floating point value is truncated to an integer (pixel) value.
Usage example:
@EActivity
public class MyActivity extends Activity {
@DimensionPixelOffsetRes(R.string.fontsize)
int fontSizeDimension;
@DimensionPixelOffsetRes
int fontsize;
}
@DimensionPixelSizeRes
The @DimensionPixelSizeRes
annotation can be used to retrieve dimension resources.
Retrieves the dimension to its final value as an integer pixel size. This is the same as @DimensionRes, except the raw floating point value is converted to an integer (pixel) value for use as a size. A size conversion involves rounding the base value, and ensuring that a non-zero base value is at least one pixel in size
Usage example:
@EActivity
public class MyActivity extends Activity {
@DimensionPixelSizeRes(R.string.fontsize)
int fontSizeDimension;
@DimensionPixelSizeRes
int fontsize;
}
Other @XXXRes
Here is the list of other supported resource annotations:
@BooleanRes
@ColorStateListRes
@DrawableRes
@IntArrayRes
@IntegerRes
@LayoutRes
@MovieRes
@TextRes
@TextArrayRes
@StringArrayRes
Method based injection
Since AndroidAnnotations 4.0.0
This works for all of the previously mentioned @*Res
annotations.
@EActivity
public class MyActivity extends Activity {
@ColorRes(R.color.backgroundColor)
void setOneResource(int someColor){
// do something with someColor
}
void setMultipleBeans(@StringRes(R.string.hello) String myHelloString, @StringRes String hello){
// do something with myHelloString and hello
}
}