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

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字段的注入了.

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值