如何将SpannedString转换为Spannable

Kai*_*dul 15 android textview spannable

您好我在textview中设置了一些文本.

TextView tweet = (TextView) vi.findViewById(R.id.text);
tweet.setText(Html.fromHtml(sb.toString()));
Run Code Online (Sandbox Code Playgroud)

然后我需要将文本转换TextViewSpannble.所以我这样做:

Spannable s = (Spannable) tweet.getText();
Run Code Online (Sandbox Code Playgroud)

我需要转换它,Spannable因为我传入了TextView一个函数:

    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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

这显示没有错误/警告.但抛出运行时错误:

java.lang.ClassCastException: android.text.SpannedString cannot be cast to android.text.Spannable
Run Code Online (Sandbox Code Playgroud)

如何将textview的SpannedStringt /文本转换为Spannble?或者我可以在函数内部使用SpannedString执行相同的任务吗?

Com*_*are 20

如何将textview的SpannedStringt /文本转换为Spannble?

new SpannableString(textView.getText()) 应该管用.

或者我可以在函数内部使用SpannedString执行相同的任务吗?

对不起,但是removeSpan()并且setSpan()Spannable界面上的方法,并SpannedString没有实现Spannable.