我们在 Android 中有设置按钮的 OnClickListener 的方法(button.setOnClickListener(....),但没有 .getOnClickListener。
我需要将侦听器分配给 Button 并将其保存在变量中。
OnClickListener是Button类的protected字段,继承自TextView,继承自View类。字段名称“mOnClickListener”。即使通过反射我也无法得到它:
...
Button button1 = (Button) findViewById(R.id.button1);
OnClickListener listener = getListener(button1);
...
public OnClickListener getListener(Button b) {
java.lang.reflect.Field field = b.getClass().getSuperclass().getSuperclass().getDeclaredField("mOnClickListener");
...
}
得到“noSuchFieldException”。有什么想法可以使它成为可能吗?
PS我知道其他方法可以让我的应用程序在没有反射的情况下工作,只是想知道为什么它不起作用。