我需要这样的东西:
从任何方法:
if(for one flavor)
do something
else
do something
如何处理java的风格?
答案 0 :(得分:1)
您可以指定flavor的文件。如果我是你,我会做这样的事情:
将文件放入main/java/your/package
来源,我们称之为CustomClass.java
。
它包含这样的内容:
public class CustomClass {
public static void myCustomMethod() {
//Do something here...
}
}
之后,您可以在flavor名称文件夹(主文件夹旁边)中创建此类的特定于风味的版本。
所以在这里放一个CustomClass.java:your_flavor_name/java/your/package
并做点别的事情:
public class CustomClass {
public static void myCustomMethod() {
//Do something here for that specific flavor!
}
}
构建将合并文件并使用特定的文件,如果没有找到特定于风味的文件,则使用主版本。您可以将它用于drawable和其他所有文件(资产......)。
此后你只需要创建一个新的味道。在你的gradle中添加:
productFlavors {
your_flavor_name {
applicationId "your.package"
}
}
此处有更多内容:http://developer.android.com/tools/building/configuring-gradle.html
答案 1 :(得分:0)
感谢您的回答@GaborNovak
事实上,我为普通班搜索了类似的内容:
if("flavor-name".equals(getApplicationContext().getPackageName())){
myIntent.setClass(thisClass.this, nextClass.class);
}
else {
myIntent.setClass(thisClass.this, nextClass.class);
}
我认为这有点令人困惑。当我写getApplicationContext.getpackageName - >它在构建gradle中定义了所选flavor的application_id。 当我编写BuildConfig.APPLICATION_ID - >它得到包名。有没有人可以解释这种逻辑?这不是很困惑吗?
答案 2 :(得分:0)
分别为两个newItem
定义两个string.xml
,并在每个product-flavors
中添加一个共同名称字符串,例如,在第一种风格的<string name="flavor">Flavor One</string>
中添加string.xml
并添加第<string name="flavor">Flavor Two</string>
版string.xml
flavor
。现在在方法中,获取字符串{{1}}的值并相应地添加代码行。
因为,对于这两种口味,字符串风味将具有两个不同的值。
答案 3 :(得分:0)
在productFlavor中的something()中创建类:
主要共同来源:
main\java\com.exmaple.test\class.java - > something()
Flavor1来源:
flavor\java\com.exmaple.test\class.java - > something()
Flavor2来源:
flavor\java\com.exmaple.test\class.java - > something()