在片段中调用公共方法

时间:2015-04-24 09:35:18

标签: android

在我的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()方法是指活动而不是片段类。

如何让它引用片段类?但是,请记住,我的库可以在任何地方使用,包括活动本身。所以我不想要的是引用片段的上下文,而是任何类的上下文恰好是使用该库的那个。

1 个答案:

答案 0 :(得分:0)

显然,您无法在xml中创建调用片段中的click方法的单击事件。

请参阅: Android app crashing (fragment and xml onclick)