【问题标题】:How to set separeted spans on the same textView?如何在同一个 textView 上设置分隔跨度?
【发布时间】:2017-03-12 09:52:32
【问题描述】:

我有一个 textView 和一个 ListView。 当用户单击 ListView 的一个元素时,它将被添加到 textView。 我想在电视上分离这些字符串,所以当用户单击 TextView 上的指定字符串时,我想从电视中删除该元素。 我想我需要 SpannableString 但我不能将它们彼此分开。我的意思是我不能对元素执行不同的操作。

enter image description here

【问题讨论】:

标签: android textview spannablestring


【解决方案1】:

如果你已经有你的SpannableStrings,你可以尝试使用TextUtilsconcat他们:

TextUtils.concat(span1, span2);

要创建 Spans,您可以使用 setSpan 方法;

setSpan(Object what, int start, int end, int flags)

,例如创建ClickableSpan,你可以这样做:

SpannableString styledString = new SpannableString(Text);
ClickableSpan clickableSpan = new ClickableSpan() {
                    @Override
                    public void onClick(View widget) {

                    }
                };
styledString.setSpan(clickableSpan, 0, Text.length(), 0);

P.S: 请记住,您可以为 Spannable 字符串设置多个跨度,请注意一个跨度的结尾不要与下一个跨度的开头重叠。..

【讨论】:

  • 例如,当第二个跨度有 6 个跨度时,我如何对其执行操作?
  • 是的,正如我上面提到的,您可以拥有任意数量的 SpannableString,您也可以使用 setSpan 将多个 Span 设置为相同的字符串。每个 span 都是这样创建的: setSpan(Object what, int start, int end, int flags) 所以你甚至可以设置文本的哪些部分是可点击的,哪些部分是普通文本。
猜你喜欢
  • 2013-02-05
  • 2016-11-17
  • 2021-07-31
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 2016-07-27
相关资源
最近更新 更多