从库类访问主项目类

时间:2011-10-31 17:18:40

标签: android eclipse

我有一个使用库项目的Android项目(我构建了所有这些项目)。我正在使用ADT / SDK v14,我需要访问主项目中的主类,并在解除库项目中的对话框时调用函数。现在,如果我将对我的主项目的引用添加到库项目中,我可以这样做,但这并不理想。如何从库项目中的类获取对主项目中的类的引用?

这就是它的工作方式:

  • 我的项目中的主要课程是tabhost
  • tabhost从库项目中获取选项卡的片段
  • 选项卡的一个片段启动DialogFragment
  • 当DialogFragment被解散时,我需要在主类中调用fillItems()函数(这就是我被困住的地方)

有人有什么想法吗?

谢谢, 编

1 个答案:

答案 0 :(得分:5)

  

如何从库项目中的类中获取主项目中的类的引用?

理想情况下,你没有。

相反,你:

  1. 在库中定义一个接口,该接口包含您要调用的方法,其实现来自主项目
  2. 在主项目中的某个可能类上实现该接口
  3. 通过某些setter或构造函数参数
  4. 将该实现提供给库
  5. 让库根据需要调用接口实现上的方法
  6. 通过完成所有这些
  7. 确保您没有引入任何类型的垃圾收集问题

    字面上“从库项目中的类中获取对我的主项目中的类的引用”的唯一方法是通过反射,这很慢并且使代码难以维护。