为不同的产品风格设置app_name字符串资源的不​​同值(具有不同的应用程序名称)

时间:2016-01-05 06:55:53

标签: android android-resources android-productflavors

private Map<String, FontType> getMapFromTags(String toCheck) {
    Map<String, FontType> chunksMap = new LinkedHashMap<>();
    boolean openTag = false;

    while (toCheck.contains(TAG_NEGRITA) || toCheck.contains(TAG_CURSIVA)) {
        final int indexOfBold = toCheck.indexOf(TAG_NEGRITA);
        final int indexOfItalics = toCheck.indexOf(TAG_CURSIVA);

        final int indexToUse = getValidIndexToUse(indexOfBold, indexOfItalics);

        final String substring = toCheck.substring(0, indexToUse);
        toCheck = toCheck.substring(indexToUse + 3, toCheck.length());

        if (!substring.isEmpty()) {
            if (!openTag) {
                chunksMap.put(substring, FontType.NORMAL);
            } else if (indexToUse == indexOfBold) {
                chunksMap.put(substring, FontType.BOLD);
            } else {
                chunksMap.put(substring, FontType.ITALIC);
            }
        }

        openTag = !openTag;
    }
    // check if there is some NORMAL text at the end
    if (!toCheck.isEmpty())
        chunksMap.put(toCheck, FontType.NORMAL);

    return chunksMap;
}

private int getValidIndexToUse(int indexOfBold, int indexOfItalics) {
    if (indexOfBold > -1 && indexOfItalics == -1)
        return indexOfBold;
    else if (indexOfItalics > -1 && indexOfBold == -1)
        return indexOfItalics;
    else 
        return indexOfBold > -1 && indexOfBold < indexOfItalics ? indexOfBold : indexOfItalics;
}

我希望根据不同的口味使用不同的名称,所以我使用上面的resValue。但我只得到了包裹名称,而不是&#34; dddd&#34; ,我已经删除了strings.xml中的app_name。 这里有诀窍吗?

1 个答案:

答案 0 :(得分:1)

为不同的口味设置不同的应用名称:

为每种风格创建一个string.xml(在flavor自己的src文件夹下): (以dev味为例)

项目中的文件夹结构应如下所示:

app
---src
   ---main
      ---res
         ----values
             ----string.xml
   ---dev
      ---res
         ----values
             ----string.xml

根据需要在每种风味下的app_name中设置string.xml的字符串值。

flavor的资源文件夹中的字符串资源会覆盖主资源文件夹中的字符串资源。只需将app_name放入特定风格string.xml即可。您不需要从主src文件夹中复制所有字符串资源,除非您想要使用不同的味道值。

不要从app_name文件夹中的strings.xml删除main。 (你提到的你已经做了 - 在你的问题中)。如果你采用这种方法,还原它。如果您没有为其他一些风格明确设置单独的资源,它将作为后备字符串资源。

如果您正在谈论使用dddd后缀applicationIdSuffix,请使用 productFlavors { dev { applicationIdSuffix ".dddd" } ,如下所示:

[['from_date', 'to_date'], 'date']