Android 开发问题:ClickableSpan 的点击事件没有生效
📅 2026/7/7 18:58:42
👁️ 阅读次数
📝 编程学习
SpannableStringspannableString=newSpannableString("Hello Android");spannableString.setSpan(newClickableSpan(){@OverridepublicvoidonClick(@NonNullViewview){Toast.makeText(SpannableStringTestActivity.this,"点击了 Hello",Toast.LENGTH_SHORT).show();}},0,5,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);TextViewtvContent=findViewById(R.id.tv_content);tvContent.setText(spannableString);- 在 Android 开发中,执行上述代码,ClickableSpan 的点击事件没有生效
问题原因
- TextView 默认不会处理 ClickableSpan 的点击事件,需要显式启用
处理策略
- 设置 LinkMovementMethod,TextView 才会拦截点击事件,并分发给对应的 ClickableSpan
// 关键tvContent.setMovementMethod(LinkMovementMethod.getInstance());
编程学习
技术分享
实战经验