我们如何将TextView的链接打开到Webview中

Sak*_*ake 11 android

我怎样才能打开TextView的链接到WebView当我点击链接TextView.

Mic*_*ael 29

Spanned spanned = Html.fromHtml("<a href=\"http://google.com\">google.com</a>");
textView.setText(spanned);
Run Code Online (Sandbox Code Playgroud)

编辑:这不是处理链接点击的理想方式,但我不知道任何其他方式.

您的主要活动包含TextView一个链接.链接URL具有自定义方案.

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView link = (TextView)findViewById(R.id.link);
        link.setText(
            Html.fromHtml("<a href='myscheme://www.google.com'>link</a>"));
        link.setMovementMethod(LinkMovementMethod.getInstance());
    }
}
Run Code Online (Sandbox Code Playgroud)

当点击这个链接的Android启动一个ActivityACTION_VIEW使用链接URL.假设您有一个WebViewActivity使用此自定义方案处理URI的方法.它获取传递的URI并用其替换其方案http.

public class WebViewActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );

        if( savedInstanceState == null ) {
            String url =
                getIntent().getDataString().replace("myscheme://", "http://");
            // do something with this URL.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

要处理自定义URI方案,WebViewActivity必须在AndroidManifest.xml文件中包含intent过滤器:

<activity android:name=".WebViewActivity" android:exported="false">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="myscheme" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)