Android库项目 – 定义类

嘿! (在这里很长的职位道歉)

我正在编写几个基于相同代码的应用程序。

每个应用程序都会有所不同,有些会有新的活动,都会有不同的资源分配。

我正在尝试使用Android库项目,以便我可以将所有常用代码放在一个位置,因此只需更改一次,所有项目都将被更新。

现在,资源是一个简单的解决scheme,因为我可以在主应用程序中定义每个资源,只要命名约定保持不变,这些资源就会覆盖库项目中的资源。

现在,我的问题是,我怎样才能做到这一点,但对于类? 例如,生病有一个基础视图作为所有视图的通用代码的包装。 在这里,我开展了各种活动。 如果这三个应用程序需要启动不同的活动,因为它们将包含不同的UI和function? 我将如何去做这件事? 图书馆项目永远不会知道主项目想要使用不同的活动,因为它已经被编译。

我有几个解决scheme,我想到了,但我想知道是否有其他人有一些想法? 这对任何反馈都会有很大的帮助:

  1. 要启动的库项目中的活动存储对要加载的类的引用,这将在启动时在主应用程序中定义。 这是图书馆项目调用这个活动的时候,它可以加载它被告知的内容。

  2. 我将保留库项目活动中不会更改的所有function。 然后我扩展这个活动,并重写onCreate来做我所需要的(比如加载不同的布局,设置视图等)。 现在这有一个缺点,因为我必须在我的主应用程序中而不是在库项目中定义大部分入口点。

我希望你能跟随我的问题在这里。 请问我是否解释得不好。

谢谢,

亚当

Solutions Collecting From Web of "Android库项目 – 定义类"

或者更简单:您是否应该使用inheritance或组合来实现这种灵活性?

我也有这样的结构追求。 通常情况下,你可以通过重用一个适用的模式来解决这个问题,并把小代码中的必要代码部分打破 也就是说,如果你知道区别是视图,那么将其提取到一些可区别的类中,这些类将在一个通用接口上实现,并引用基本活动中的接口。

一些链接给你:

至less从我如何理解你的问题,这是更多的OOPdevise问题。