嘿!(对于这篇长帖子,我表示歉意)
我正在编写几个应用程序,它们将基于基本相同的代码。
每个应用程序都会有所不同,一些将拥有新的活动,所有应用程序都将分配不同的资源。
我试图使用Android库项目,以便我可以将所有公共代码放在一个地方,因此只需进行一次主要更改即可更新所有项目。
现在,资源是一种简单的解决方案,因为我可以在主应用程序中定义每个资源,并且只要命名约定保持相同,这些资源就会覆盖库项目中的资源。
现在,我的问题是如何为类做到同样的事情?例如,我将一个基本视图作为所有视图中通用代码的包装器。在此基础上,我启动各种活动。如果所有三个应用程序都需要启动不同的活动,因为它们将包含不同的UI和功能,该怎么办?我该如何解决这个问题?库项目将永远不会知道主项目想要使用不同的活动,因为它已经被编译了。
我想出了一些解决方案,但我想知道是否还有其他人有一些想法?任何反馈都将非常有帮助:
要启动的库项目中的活动存储要加载的类的引用,该类将在其启动时在主应用程序中定义。这样,当库项目调用此活动时,它可以加载已经被告知的内容。
我将所有不会更改的功能留在库项目的活动中。然后我扩展此活动,并覆盖onCreate以在此处执行所需操作(例如加载不同的布局,设置视图等)。现在,这有一个缺点,因为我必须在我的主应用程序中而不是在库项目中定义大多数入口点。
我希望你能理解我的问题。如果我解释得不好,请问一下。
谢谢,
亚当