场景需求 需要获取点击事件来分析
反射获取控件的点击事件 原创文章 转载请注明
代码 :
Button button = activity.findViewById(R.id.button);
//反射点击事件列表
Method listenerInfoMethod = View.class.getDeclaredMethod("getListenerInfo");
listenerInfoMethod.setAccessible(true);
Object listenerInfo = listenerInfoMethod.invoke(button);
//要获取单击监听器则在前面加个m 其他同理 例如长按监听器就是mOnLongClickListener
Class<?> listenerInfoClass = listenerInfo.getClass();
Field mOnClickListenerField = listenerInfoClass.getDeclaredField("mOnClickListener");
mOnClickListenerField.setAccessible(true);
//通过字段获取此监听器对象
View.OnClickListener onClick =(View.OnClickListener) mOnClickListenerField.get(listenerInfo);
喜欢点个赞呢