m0s*_*it0 5 android aspectj listener
我正在使用AspectJ与Android,我成功捕获View.setOnClickListener()了这方面的调用:
public aspect Test {
pointcut callPointcut(View view, OnClickListener listener) : call(void View.setOnClickListener(OnClickListener)) && target(view) && args(listener);
@SuppressAjWarnings // Exported advice
before(View view, OnClickListener listener) : callPointcut(view, listener)
{
Log.d("AspectJ", "Attempt to set onClick listener on view " + Integer.toHexString(view.getId()));
Log.d("AspectJ", "Aspect has executed.");
Log.d("AspectJ", listener.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这并没有捕获android:onClick在布局XML中设置的侦听器.有没有办法捕获这个?
你将无法那样做。
如果我理解正确的话,您会监听视图上的 setOnClickListener() 调用。
当您在 xml 中设置 onclick 属性时,它永远不会被调用。侦听器是在创建视图时直接设置的。setOnClickListener() 永远不会被调用。
唯一的解决方案是手动检查您的所有视图 - 这不推荐,也可能不是您想要的。
| 归档时间: |
|
| 查看次数: |
617 次 |
| 最近记录: |