0

我使用我的 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() 设置字体颜色;

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

我想删除超链接文本格式

蓝色字体颜色,下划线,单击超链接时的蓝色框

4

1 回答 1

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 不起作用:)

于 2013-08-19T04:04:26.863 回答