SpannableStringBuilder在字符串中包含的单词不可见。怎么解决?

时间:2015-03-15 21:17:53

标签: android android-layout android-activity toast android-toast

以下是代码示例:

String engText = "The story of Sir Walter Raleigh";
TextView textView1 = (TextView) findViewById(R.id.textView1);

textView3.setMovementMethod(LinkMovementMethod.getInstance());
textView3.setText(addClickablePart(engText), BufferType.SPANNABLE);

,其中

private SpannableStringBuilder addClickablePart(String str)
{
    SpannableStringBuilder ssb = new SpannableStringBuilder(str);
    ssb.setSpan(new ClickableSpan() {
            @Override
            public void onClick(View widget)
            {
               Toast.makeText(getApplicationContext(),"tale",Toast.LENGTH_SHORT).show();
            }
    }, 4, 9, 0);

    return ssb;
}

在此代码中,当您点按 story 这个词时,会弹出一个叫故事的Toast。但是问题在于:在版本4及更高版本的Android中,单词 story 变得不可见,而您仍然可以点击空白(不可见)空间烤面包没有麻烦。

我如何保留" 故事"可以看到或改变它的颜色,以便它可以保持可见,而它在点击时可以像吐司一样工作?

1 个答案:

答案 0 :(得分:0)

我想我自己已经得到了它;

在第一个 setSpan 之后,我需要立即开始使用另一个 setSpan 来改变同一个单词的颜色。这是:

ssb.setSpan(new ForegroundColorSpan(Color.RED), 4, 9,
   Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);