ClickableSpan OnClick 未被调用用于多跨度

ClickableSpan OnClick is not being called for multi spans

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,而其他单词则不然。

我正在使用 htmlTextView.getText() 创建 SpannableString,这些词是 html 文本源中的链接词,因此点击监听器无法正常工作 当我将其更改为

SpannableString spannableString = htmlTextView.getText().ToString();

它有效,但我丢失了 html 文本设计。