为了账号安全,请及时绑定邮箱和手机立即绑定

SpannableString 和 ClickableSpan 的问题

SpannableString 和 ClickableSpan 的问题

Helenr 2022-05-20 13:19:40
我写了这段代码:public class BaldrActivity extends AppCompatActivity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.a_dei_baldr);    String myString = "Click Here!";    SpannableString ss = new SpannableString(myString);    ClickableSpan clickableSpan1 = new ClickableSpan() {        @Override        public void onClick(View widget) {            Toast.makeText(BaldrActivity.this, "hello world", Toast.LENGTH_SHORT).show();        }        @Override        public void updateDrawState(TextPaint ds) {            super.updateDrawState(ds);            ds.setColor(Color.BLUE);            ds.setUnderlineText(false);        }    };    ss.setSpan(clickableSpan1, 6, 11, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    TextView tv = findViewById(R.id.tv_baldr1);    tv.setText(myString);    tv.setMovementMethod(LinkMovementMethod.getInstance());}}但是……什么都没有改变。我的意思是,代码构建正确,应用程序没有崩溃,TextView 实际上在“单击此处!”中发生了变化,但它不可点击并且它的外观没有改变......为什么?
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

看起来你正在设置字符串:

tv.setText(myString);

相反,设置您正在创建的 SpannableString:

tv.setText(ss);


查看完整回答
反对 回复 2022-05-20
  • 1 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号