ボタンの OnClickListener を設定するための Android のメソッド (button.setOnClickListener(....) がありますが、.getOnClickListener はありません。
ボタンに割り当てられたリスナーを取得し、変数に保存する必要があります。
OnClickListener は Button クラスの保護フィールドで、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私は自分のアプリをリフレクションなしで機能させる他の方法を知っています.なぜそれが機能しないのか疑問に思っています.