[Android开发]在Activity中对View控件自动注入

来源:互联网 发布:淘宝开店代销怎么做 编辑:程序博客网 时间:2024/06/05 06:53

public static void findView(Activity activity) {try {Class clazz = activity.getClass();Field[] fields = clazz.getDeclaredFields();String fieldName = null;// 遍历所有字段for (Field field : fields) {fieldName = field.getName();try {Field idField = R.id.class.getField(fieldName);int id = (Integer) idField.get(null);View view = activity.findViewById(id);field.setAccessible(true);field.set(activity, view);} catch (Exception e) {}}} catch (Exception e) {LogUtil.d("", e.getMessage());}}



实现思路: 根据xml中控件的id值,  对Activity中定义的同名成员变量进行注入. 比如xml中有个id为tv_name的TextView, 而且你的activity中定义了 TextView tv_name. 那么

在onCreate中调用这个方法即可实现tv_name字段的注入了.

当然, 为了提高性能, 你可以给你的名字加入一些特征, 然后修改该方法.  比如含有下划线_的字段才去尝试注入.

0 0