有没有哪位老哥熟悉这方面的?本人要做毕设,网上资料少之又少,加上之前没做过安卓开发,进展十分缓慢,希望有大佬可以给点源代码参考参考,或者指点一下。用的Android studio3.2
解决方案 »
- Error in an XML file: aborting build.
- 在4.X上编写的程序无法在2.3上运行吗?
- Android 开发中遇到 Unable to create service java.lang.IllegalStateException 大家帮忙看看呗!
- 在activity里启动service之后怎么样才可以得到这个service的实例
- Android手机客户端,如何取得服务器端数据库的数据。。。
- android平板电脑开发-(surfaceView)
- Android中使用XMLEncoder进行序列化的问题
- android游戏中文字如何描绘
- 求教各路大神,此异常如何搞定~
- MediaRecorder怎么能不通过缓存到本地直接获取数据。
- Android studio导入font awesome出问题。
- Mediaplayer的资源释放
public static void hookOnClickListener(View view)throws Exception{
// 第一步:反射得到 ListenerInfo 对象
Method getListenerInfo = View.class.getDeclaredMethod("getListenerInfo");
getListenerInfo.setAccessible(true);
Object listenerInfo = getListenerInfo.invoke(view);
// 第二步:得到原始的 OnClickListener事件方法
Class<?> listenerInfoClz = Class.forName("android.view.View$ListenerInfo");
Field mOnClickListener = listenerInfoClz.getDeclaredField("mOnClickListener");
mOnClickListener.setAccessible(true);
View.OnClickListener originOnClickListener = (View.OnClickListener)mOnClickListener.get(listenerInfo);
// 第三步:用 Hook代理类 替换原始的 OnClickListener
View.OnClickListener hookedOnClickListener = new HookedClickListenerProxy(originOnClickListener);
mOnClickListener.set(listenerInfo,hookedOnClickListener);
}public class HookedClickListenerProxy implements View.OnClickListener { private View.OnClickListener origin; public HookedClickListenerProxy(View.OnClickListener origin) {
this.origin = origin;
} @Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Hook Click Listener", Toast.LENGTH_SHORT).show();
if (origin != null) {
origin.onClick(v);
}
}
}
然后mainavtivity里
button1.setOnClickListener(this );
try{
HookHelper.hookOnClickListener(button1);
}catch (Exception e) {
e.printStackTrace();
}
感谢!我先看看