Вы можете получить это поле от View.class
. но другая ошибка в вашем коде - вы устали получать поле ListenerInfo.mOnTouchListener
, но это не поле. сначала вы должны получить mListenerInfo
поле из View.class
, а затем mOnTouchListener
из этого.
Попробуйте это, отлично работает.
View.OnTouchListener mOnTouchListener = null;
try {
Field mListenerInfoField = View.class.getDeclaredField("mListenerInfo");
mListenerInfoField.setAccessible(true);
Object mListenerInfo = mListenerInfoField.get(myView);
Field mOnTouchListenerField = mListenerInfo.getClass().getDeclaredField("mOnTouchListener");
mOnTouchListenerField.setAccessible(true);
mOnTouchListener = (View.OnTouchListener) mOnTouchListenerField.get(mListenerInfo);
mOnTouchListenerField.setAccessible(false);
mListenerInfoField.setAccessible(false);
} catch (Exception e) {
e.printStackTrace();
}
if (mOnTouchListener != null) {
mOnTouchListener.onTouch(myView, null);
}