В моем приложении для Android фрагмент использует библиотеку, которую я написал. То, что мне нужно сделать, это использовать отражение, чтобы метод внутри библиотеки обращался к методу в фрагменте. Мой код выглядит следующим образом: неВызов публичного метода в фрагменте
Context c = getContext();
Class[] paramTypes = new Class[2];
paramTypes[0] = int.class;
paramTypes[1] = boolean.class;
java.lang.reflect.Method method = c.getClass().getMethod("someMethod", paramTypes);
method.invoke(c, id, selected);
Если метод «SomeMethod» помещается в классе фрагмента, он никогда не вызывается. Но если я поместил его в действие, в котором фрагмент является частью, он будет вызван. По-видимому, метод getContext() ссылается на активность, а не на класс фрагмента.
Как я могу получить ссылку на класс фрагмента? Однако имейте в виду, что моя библиотека может использоваться в любом месте, включая собственно деятельность. Поэтому я не хочу ссылаться на контекст фрагмента, но контекст любого класса оказывается тем, который использует библиотеку.