2015-04-24 3 views
0

В моем приложении для 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() ссылается на активность, а не на класс фрагмента.

Как я могу получить ссылку на класс фрагмента? Однако имейте в виду, что моя библиотека может использоваться в любом месте, включая собственно деятельность. Поэтому я не хочу ссылаться на контекст фрагмента, но контекст любого класса оказывается тем, который использует библиотеку.

ответ

Смежные вопросы