您的位置:首页 > 移动开发 > Android开发

Android中用注解和反射实现控件的绑定

2015-11-27 14:11 435 查看
<span>	</span>在日常的Android开发中,经常出现的findViewById()通常让小伙伴们写的很烦躁,一连串重复的代码严重的影响我们的生产力。现在,让我们用一段代码来简化这些烦躁的没有意义的重复吧,废话不多说,直接上代码:
/**
* 注解findviewById
*
* @param ctx
*/
public static void inject(Activity ctx) {
Class<? extends Activity> class1 = ctx.getClass();
Field[] fields = class1.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
MyAnnation annotation = field.getAnnotation(MyAnnation.class);
if (annotation != null) {
try {
field.set(ctx, ctx.findViewById(annotation.id()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
@MyAnnation(id = R.id.seekBar1)
private SeekBar sb1;
@MyAnnation(id = R.id.seekBar2)
private SeekBar sb2;
@MyAnnation(id = R.id.seekBar3)
private SeekBar sb3;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AnnotationUtil.inject(this);
}
注解类:

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnation {

public int id();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: