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 文本设计。
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 文本设计。