Android如何删除超链接文本格式?

时间:2013-08-19 03:38:18

标签: android html textview

我使用textview每个单词可点击使用此代码

private ClickableSpan getClickableSpan() {
    return new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            TextView tv = (TextView) widget;
            String s = tv
                    .getText()
                    .subSequence(tv.getSelectionStart(),
                            tv.getSelectionEnd()).toString();

            Log.d("tapped on:", s);
        }

        public void updateDrawState(TextPaint ds) {
            super.updateDrawState(ds);
        }
    };
}

public static Integer[] getIndices(String s, char c) {
    int pos = s.indexOf(c, 0);
    List<Integer> indices = new ArrayList<Integer>();
    while (pos != -1) {
        indices.add(pos);
        pos = s.indexOf(c, pos + 1);
    }

    pos = s.indexOf("\n", 0);
    while (pos != -1) {
        indices.add(pos);
        pos = s.indexOf("\n", pos + 1);
    }

    Collections.sort(indices);

    return (Integer[]) indices.toArray(new Integer[0]);
}

问题是我使用HTML.fromHtml()设置字体颜色;

但是当我使用这个超链接代码时,颜色变为蓝色

我想删除超链接文字格式

单击超链接时

蓝色字体颜色,下划线,蓝色框

1 个答案:

答案 0 :(得分:0)

我解决了我的问题使用此代码

public class NonUnderlinedClickableSpan extends ClickableSpan 
{
    @Override
        public void updateDrawState(TextPaint ds) {            
           ds.setUnderlineText(false); // set to false to remove underline
        }

    @Override
    public void onClick(View widget) {
        // TODO Auto-generated method stub
    }
}

我使用ClickableSpan,因此NoURLUnderline不起作用:)