使用上面的库和下面的代码,这就是我得到的
码
String description="";
String markdown = "*";
for (JsonElement e:sl.get("description").getAsJsonArray()){
if(!e.getAsString().trim().isEmpty() && CharMatcher.javaUpperCase().or(CharMatcher.javaLetter().negate()).matchesAllOf(e.getAsString().trim())) {
SpannableString s1 = new SpannableString(e.getAsString());
s1.setSpan(new BulletSpan(20), 1, e.getAsString().length(), 0);
description +=s1 + "\n\n";
}else if(!e.getAsString().trim().isEmpty()) {
SpannableString s1 = new SpannableString(e.getAsString());
s1.setSpan(new BulletSpan(20), 1, e.getAsString().length(), 0);
description += markdown+ s1 + "\n\n";
}
}
viewHolder.body.setMarkDownText(description);
这是输出
我该怎么做才能确保所有其他列表项都出现在第一个列表中。?
这是我需要的输出
答案 0 :(得分:0)
看起来将SpannableString附加到String以获取描述会导致问题。
创建一个SpannableString数组,用于存储来自Json元素的所有描述,然后在结尾处连接所有描述并将其设置为文本视图。参考伪 代码
SpannableString[] descriptionArray = new SpannableString[YourJsonArray.length];
// Read individual description in loop and add them to array here.
//Now outside the for loop concat and set all description
viewHolder.body.setMarkDownText(TextUtils.concat(descriptionArray));