Android textview显示链接,没有带下划线的链接web

时间:2015-06-08 07:39:12

标签: android android-webview textview

我有一些关于textview show link web.i的错误想要没有带下划线的链接web.i有阅读一些例子,但它没有解决方案。谢谢 这是代码:

 TextView txWebview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_demo_question);
        txWebview = (TextView) findViewById(R.id.txWebview);
        txWebview.setText(
                                 Html.fromHtml("http://www.google.com"));
        stripUnderlines(txWebview);

    }
    public class URLSpanNoUnderline extends URLSpan {
        public URLSpanNoUnderline(String url) {
            super(url);
        }
        @Override public void updateDrawState(TextPaint ds) {
            super.updateDrawState(ds);
            ds.setUnderlineText(false);
        }
    }
    private void stripUnderlines(TextView textView) {
        Spannable s = new SpannableString(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);
    }

和xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:context=".DemoQuestionActivity">

  <TextView
      android:id="@+id/txWebview"
      android:autoLink="web"
      android:layout_width="match_parent"
      android:layout_height="match_parent"/>
</RelativeLayout>

但结果不正确:enter image description here

2 个答案:

答案 0 :(得分:0)

方法tellerApp.factory('AccountService',['$resource', function ($resource) { return{ getAccountDetails: $resource(XXX, {}, { getAccountDetailsService: {} }), getAccountInformation: function($scope, number, transaction, index){ AccountService.getAccountDetails.getAccountDetailsService({number : number}) .$promise.then(function(response){}); } }]); 用于从HyperLink中删除下划线。

stripUnderlines

就像这样。

答案 1 :(得分:0)

我认为你在stripUnderlines(txWebview)之前省略了以下代码:

txWebview.setMovementMethod(LinkMovementMethod.getInstance()); 

并且你不能在stripUnderlines()之后设置setMovementMethod。

我试过了。