- 前言
- 一、获取 Activity 中的所有方法
- 二、获取方法上的注解
- 三、获取注解上的注解
- 四、通过注解属性获取相关事件信息
Android 依赖注入的核心就是通过反射获取 类 / 方法 / 字段 上的注解 , 以及注解属性 ; 在 Activity 基类中 , 获取该注解 以及 注解属性 , 进行相关操作 ;
在博客 【IOC 控制反转】Android 事件依赖注入 ( 事件三要素 | 修饰注解的注解 | 事件依赖注入步骤 ) 中 , 定义了 2 2 2 个注解 ,
- 第一个是方法上的注解 , 用于修饰方法 ;
- 第二个是修饰注解的注解 , 该注解用于配置注入的方法 ( 事件监听方法 | 监听器类型 | 监听器回调方法 ) ;
事件依赖注入比较复杂 , 涉及到动态代理 , 本博客分析 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入代码示例 ) 事件依赖注入的详细步骤 ;
本博客的核心是 : 使用动态代理 , 创建 View.OnClickListener
或 View.OnLongClickListener
或 View.onTouchListener
等接口的动态代理类 ; 拦截相应的 onClick
, onLongClick
, onTouch
方法 , 执行自己的方法 , 其它方法正常执行 ;
通过反射获取 Activity 类 , 然后调用 Class 的 getDeclaredMethods
方法 , 获取 Activity 中的所有方法 ;
// 获取 Class 字节码对象
Class clazz = activity.getClass();
// 获取所有方法
Method[] methods = clazz.getDeclaredMethods();
二、获取方法上的注解
获取方法的所有注解 , 获取的是 @OnClick({R.id.textView}) // 事件注入
注解 ;
调用 Method
方法的 getDeclaredAnnotations
方法 , 获取方法上的注解数组 ;
// 循环遍历类的方法
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?