BulletSpan не работает в Android Textview

Я пытаюсь добавить пули в unordered списки с использованием Bullet Span. Но я не могу найти пули в списке. Ниже мой код:

    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 это элемент списка. Я добавляю маркер сюда, а затем возвращаю элемент и добавляю его к 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));
                }

0 ответов

Прежде всего вы, вероятно, захотите использовать SpannableStringBuilder вместо того StringBuilder. Во-вторых, в вашемappendBullet(...) метод путем вызова toString() на SpannableStringНапример, вы, вероятно, теряете всю остаточную информацию! Вместо этого вы, вероятно, захотите добавить каждыйString который должен быть внесен в список SpannableStringBuilder экземпляр, а затем вызовите setSpan(...) метод на SpannableStringBuilder экземпляр для каждого из этих Stringс.

Если это поможет, я собрал функцию расширения на SpannableStringBuilderкласс, который снимает с вас часть этой трудности. Вы можете найти здесь.

Другие вопросы по тегам