1

我正在尝试将项目符号添加到unordered列表中,BulletSpan.但是,我在列表中找不到项目符号。下面是我的代码:

private static String appendBullet(int leadingMargin, String liText) {
    SpannableString spannableString = new SpannableString(liText);
    spannableString.setSpan(new BulletSpan(leadingMargin), 0, liText.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
    Log.d("Ul tags", String.valueOf(spannableString));
    return spannableString.toString();
}

liItext是列表项。我在BulletSpan这里添加一个,然后返回该项目并将其添加到list,最后将整个列表添加到StringBuilder.

liList.add(appendBullet(15, liText));

List<String> liList = addListWithBullets(lists, new ArrayList<String>());

if (liList.size() > 0) {
    for (String str : liList) {
        builder.append(str);
        builder.append("<br/>");
    }
    Log.d("Ul tags", String.valueOf(liList));
}
4

1 回答 1

0

首先,您可能想要使用SpannableStringBuilder而不是StringBuilder. 其次,在您的appendBullet(...)方法中,通过调用实例toString()SpannableString您可能会丢失所有跨越信息!相反,您可能想要做的是将String要被项目符号添加到SpannableStringBuilder实例中的每个附加,然后为这些中的每一个调用实例setSpan(...)上的方法。SpannableStringBuilderString

如果它有帮助,我已经在SpannableStringBuilder类上组合了一个扩展函数,它为你消除了一些困难。你可以在这里找到。

于 2019-04-06T13:01:03.627 回答