public class MyClickableSpan extends ClickableSpan {
private String keyWord;
Context context;
public MyClickableSpan(String keyWord, Context context) {
this.keyWord = keyWord;
this.context = context;
}
@Override
public void onClick(View widget) {
Intent intent=new Intent(context, MyActivity.class);
intent.putExtra("KeyWord",keyWord);
context.startActivity(intent);
// TODO do something
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(true);
ds.setColor(Color.RED);
}
}
当我向SpannableString添加多个span时,UpdateDrawState对所有单词都正常工作,并且所有目标单词都变为红色并加下划线,但OnClick仅针对第一个单词调用而其他单词不调用。
答案 0 :(得分:0)
我使用htmlTextView.getText()来创建SpannableString,这些单词是html文本源中的链接单词,因此单击监听器无法正常工作 当我把它改成
SpannableString spannableString = htmlTextView.getText()。ToString();
它有效,但我丢失了文字的html设计。