为Android Textview中的链接启用单击操作

为Android Textview中的链接启用单击操作,android,textview,Android,Textview,我需要为Textview中的链接启用单击操作,并在应用程序窗口中打开网页。Linkify将在浏览器中打开。但我想在我的应用程序的网络视图中打开。请帮帮我。有一个关于扩展ClickableSpan的讨论 首先扩展ClickableSpan类: static class InternalURLSpan extends ClickableSpan { OnClickListener mListener; public InternalURLSpan(OnClickListener l

我需要为Textview中的链接启用单击操作,并在应用程序窗口中打开网页。Linkify将在浏览器中打开。但我想在我的应用程序的网络视图中打开。请帮帮我。

有一个关于扩展ClickableSpan的讨论

首先扩展ClickableSpan类:

static class InternalURLSpan extends ClickableSpan {
    OnClickListener mListener;

    public InternalURLSpan(OnClickListener listener) {
        mListener = listener;
    }

    @Override
    public void onClick(View widget) {
        mListener.onClick(widget);
    }
}
该博客讨论了可点击链接在您的活动中起到的作用。您可以轻松地调整此方法,以在WebView中打开URL

它基本上看起来是这样的:

SpannableString ss = new SpannableString("....")
ss.setSpan(new InternalURLSpan(new OnClickListener() {
        public void onClick(View v) {
            // Your code to open the link in a WebView here.
        }
    }), x, y, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
您只需将SpannableString对象设置为TextView的文本:

textView.setText(ss);

您可以通过string.xml文件在textview下划线

<string name="hello_world"><u>Hello world!<u></string>
你好,世界!

现在,您可以在textView上设置onClickListener,并将用户重定向到您的webView活动,而不是浏览器应用程序。

我从Google.com或其他web服务获取动态文本。如何检测它是否是web url如果您自己没有创建内容,则需要解析内容并用上面的clickableSpan替换链接。如果最终只是要在webView中打开单击的链接,为什么不将初始web服务信息加载到webView中呢?这样,webView将处理所有的点击等。