мне нужно что-то вроде этого:как вызвать другой метод для различных продуктов привкуса от общего класса Java
из любого метода:
if(for one flavor)
do something
else
do something
Как я могу справиться с вкусами из Java?
мне нужно что-то вроде этого:как вызвать другой метод для различных продуктов привкуса от общего класса Java
из любого метода:
if(for one flavor)
do something
else
do something
Как я могу справиться с вкусами из Java?
Вы можете указать файлы для ароматизаторов. Если бы я был вами, я бы сделал что-то вроде этого: поместите файл в источник main/java/your/package
, позвоните ему CustomClass.java
. Он содержит что-то вроде этого:
public class CustomClass {
public static void myCustomMethod() {
//Do something here...
}
}
После этого вы можете создать аромат конкретную версию этого класса в папке имени аромата (рядом с основной папкой). Так положить CustomClass.java здесь: your_flavor_name/java/your/package
А делать что-то другое:
public class CustomClass {
public static void myCustomMethod() {
//Do something here for that specific flavor!
}
}
Строить будет объединять файлы и использовать специфические для вас вкуса, и использовать основную версию, если нет аромата конкретного файла не найден , Вы можете использовать его для чертежей и всех других файлов (активов, ...).
После этого вам нужно только создать новый колорит. В вашем Gradle добавить следующее:
productFlavors {
your_flavor_name {
applicationId "your.package"
}
}
Больше материала здесь: http://developer.android.com/tools/building/configuring-gradle.html
спасибо за ответ @GaborNovak
На самом деле, я искал что-то подобное для общего класса:
if("flavor-name".equals(getApplicationContext().getPackageName())){
myIntent.setClass(thisClass.this, nextClass.class);
}
else {
myIntent.setClass(thisClass.this, nextClass.class);
}
Я думаю, что это немного запутанно. Когда я пишу getApplicationContext.getpackageName ->, он получает определенный application_id выбранного вкуса в градиенте построения. Когда я пишу BuildConfig.APPLICATION_ID -> он получает имя пакета. Есть ли кто-нибудь, кто может объяснить эту логику? Разве это не смущает?
определяет два string.xml
для двух product-flavors
отдельно и добавить строку общего имени в каждом, например, добавить <string name="flavor">Flavor One</string>
в string.xml
1-го аромата и добавить <string name="flavor">Flavor Two</string>
в string.xml
2-го аромата. Теперь в методе получите значение строки flavor
и соответственно добавьте строки кода. Потому что для двух ароматов аромат струны будет иметь два разных значения.
Создать класс в чем-то() в productFlavor:
Главная Общий источник:
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()