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。 这里有诀窍吗?
答案 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']