我寫了這段代碼: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
提交
取消