Xin chào, tôi đã đặt một số văn bản trong chế độ xem văn bản.Cách chuyển đổi SpannedString thành Spannable
TextView tweet = (TextView) vi.findViewById(R.id.text);
tweet.setText(Html.fromHtml(sb.toString()));
Sau đó, tôi cần phải chuyển đổi các văn bản của TextView
vào Spannble
. Vì vậy, tôi đã làm điều này như:
Spannable s = (Spannable) tweet.getText();
tôi cần phải chuyển đổi nó Spannable
vì tôi đã thông qua TextView
vào một chức năng:
private void stripUnderlines(TextView textView) {
Spannable s = (Spannable) textView.getText();
URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class);
for (URLSpan span : spans) {
int start = s.getSpanStart(span);
int end = s.getSpanEnd(span);
s.removeSpan(span);
span = new URLSpanNoUnderline(span.getURL());
s.setSpan(span, start, end, 0);
}
textView.setText(s);
}
private class URLSpanNoUnderline extends URLSpan {
public URLSpanNoUnderline(String url) {
super(url);
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
}
Điều này cho thấy không có lỗi/cảnh báo. Nhưng hãy ném Lỗi Runtime:
java.lang.ClassCastException: android.text.SpannedString cannot be cast to android.text.Spannable
Làm cách nào để chuyển đổi SpannedStringt/văn bản của văn bản thành Spannble? Hoặc tôi có thể thực hiện nhiệm vụ tương tự với SpannedString bên trong chức năng này không?
Khủng khiếp khi người dùng giao diện quyết định tạo liên kết không có gạch dưới? Đi qua cùng một điều. – portfoliobuilder