所以我有一个 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+,它就会成为一个问题。我将如何解决这个问题?或者换句话说,我仍然可以从我的基类中导入多种口味吗?谢谢
最佳答案
我不知道这是否可能,但一个快速的建议是为 ClassB 创建一个接口(interface),然后在风格中说实现,并在每种风格中都有一些代码来将实现设置为用过的。最简单的方法是使用依赖注入(inject),例如:
ClassA.setClassBImplementation(ClassBInterface obj);
并且有一个可以在代码中使用的内部 ClassBInterface 变量。然后,您可以从每种风格的类中调用所述方法来设置正确的实现。
关于java - 跨 android 风格使用多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29559368/