我写了这段代码: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);
添加回答
举报
0/150
提交
取消