在android风格中使用多个类

时间:2015-04-10 10:40:21

标签: java android gradle android-gradle android-productflavors

所以我有一个Android基础项目,我想分成各种风格。分配单独的xml很容易,类也是如此。但是,当从基类调用flavor类时会出现问题。比如我说:

package app.myapp.service

import app.flavor1.ClassB
import app.flavor2.ClassB
import app.flavor3.ClassB
import app.flavor4.ClassB

public class Class A
{
    Class B bar = new Class B;

    bar.foo();
}

因此,根据风格构建,我仍然希望使用它的B类实现,但是我不能导入这两个类,因为每个特定风格都不会识别不在该项目结构中的导入。因此,在构建项目时,它将抛出错误,因为无法识别导入。如果它只有两种口味,我可以做一个buildconfig来修复它,但是如果口味变成2+就会成为一个问题。我该如何解决这个问题?或者换一种方式,我仍然可以从我的基类导入多种口味?感谢

1 个答案:

答案 0 :(得分:1)

我不知道是否可能,但是一个快速的建议是为ClassB创建一个接口,然后在各种风格中表示实现,并在每种风格中设置一些代码来将实现设置为用过的。最简单的方法是使用依赖注入,例如:

ClassA.setClassBImplementation(ClassBInterface obj);

并且有一个可以在代码中使用的内部ClassBInterface变量。然后,您可以从每个类型的类中调用所述方法来设置正确的实现。