【问题标题】:BulletSpan not working in Android TextviewBulletSpan 在 Android Textview 中不起作用
【发布时间】:2016-02-22 14:18:48
【问题描述】:

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

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

【问题讨论】:

  • appendBullet返回CharSequence,而不是String
  • 但是我正在向列表中添加项目符号,并且列表也可以包含字符串项
  • 我尝试返回一个字符序列..仍然无法正常工作
  • 我不知道你在说什么实用程序类,在我的代码中我不使用任何自定义视图,只是普通的 TextView
  • @SangeethaPinto 你的实用程序类是什么。您能否提供更多信息

标签: android html textview bullet-span


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-22
    • 2021-10-17
    • 2012-11-10
    • 1970-01-01
    • 2014-07-19
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多