如何使用MarkdownView android库循环遍历无序列表

时间:2018-01-11 13:50:02

标签: android android-layout listview

使用上面的库和下面的代码,这就是我得到的

 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);

这是输出

enter image description here

我该怎么做才能确保所有其他列表项都出现在第一个列表中。?

这是我需要的输出

enter image description here

1 个答案:

答案 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));