[英]Android: Make a part of TextView's text NOT-clickable at runtime?
我使用Android.text.style.ClickableSpan
來創建一個字符串( Blue | Black
)可點擊的部分( Black
):
SpannableString spannableString = new SpannableString("Blue | Black ");
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
//...
}
};
ss.setSpan(clickableSpan, 7, 11, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView textView = (TextView) findViewById(R.id.secondActivity_textView4);
textView.setText(spannableString);
textView.setMovementMethod(LinkMovementMethod.getInstance());
所以字符串的Black
部分是可點擊的。 我想要的是,當用戶點擊Black
,它應該使Black
不可點擊,並且Blue
(相同字符串的另一部分)可點擊。
因此,為了使Blue
可點擊,我們可以在同一個spannableString
再次調用setSpan()
。 但是我怎么能讓Black
無法點擊?
您可以調用removeSpan()
來刪除任何以前添加的Spans。 在這種特殊情況下,它非常簡單,因為我們要刪除我們要刪除的Span:
ClickableSpan clickableSpan = new ClickableSpan()
{
@Override
public void onClick(View view)
{
((SpannableString)textView.getText()).removeSpan(this);
}
};
另一種選擇可能是迭代所有ClickableSpan
實例並將其全部刪除,例如:
SpannableString str = (SpannableString)textView.getText();
for (ClickableSpan span : str.getSpans(0, str.length(), ClickableSpan.class))
str.removeSpan(span);
由於某些我無法理解的原因,跨度的文檔真的很差......它們非常強大!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.