在Web视图中打开文本链接

时间:2013-09-13 08:58:47

标签: android webview android-webview

我在textview中的文字是“打开链接http://www.google.com以查找任何内容。”我在我的类文件中设置的文本。所以,当我点击这个链接。该链接在浏览器中打开。我想在我的网页视图中打开此链接。我怎样才能做到这一点? 我的xml文件是

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="wrap_content">

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:text="TextView" />

<WebView
    android:id="@+id/webView1"
    android:layout_width="match_parent"
    android:layout_height="444dp" />

3 个答案:

答案 0 :(得分:0)

做这样的事,

你的oncreate方法中的

 WebView mywebView = (WebView) findViewById(R.id.webview);
 mywebView.setWebViewClient(new MyWebViewClient());

然后创建一个类,

class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if(url.contains("somePartOfYourUniqueUrl")){ 
        return super.shouldOverrideUrlLoading(view, url);
    } else {
        view.loadUrl(url); // load url in webview
        return true;
    }
}

答案 1 :(得分:0)

使用java.net.URL 以下是您的帮助链接,使用此链接可以解析给定字符串中的url

How to detect the presence of URL in a string

答案 2 :(得分:0)

您可以使用WebView执行此操作,您需要声明WebViewClient对象并覆盖public boolean shouldOverrideUrlLoading (WebView view, String url)方法,在那里您可以过滤网址或提供一些自定义功能。

在您的情况下,要继续使用WebView,您需要在该方法上返回false。

查看this tutorial

处理TextView's网址上的点击事件。作为it's suggested on this question,您可以过滤包含Activity的WebView上的ACTION_VIEW意图。如果您需要more guidance about intent-filters, check this out

对于TextView,它需要更多的工作,你必须制作自己的Linkyfy类副本并使用TransformFilter来使链接按照你想要的方式运行。请查看同一TextView

中的Android Linkify class网址和@mentions示例