以下是代码示例:
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 变得不可见,而您仍然可以点击空白(不可见)空间烤面包没有麻烦。
我如何保留" 故事"可以看到或改变它的颜色,以便它可以保持可见,而它在点击时可以像吐司一样工作?
答案 0 :(得分:0)
我想我自己已经得到了它;
在第一个 setSpan 之后,我需要立即开始使用另一个 setSpan 来改变同一个单词的颜色。这是:
ssb.setSpan(new ForegroundColorSpan(Color.RED), 4, 9,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);