繁体   English   中英

单击textview中的链接后,如何在webview中打开该链接而不是默认浏览器?

[英]After clicking link in textview, how to open that link in webview instead of default browser?

我有一个文本视图。 我有这样的文字“你可以访问这个: http//www.google.com ”。 单击此链接后,应在Webview中打开它,而不是默认浏览器。 我的代码是:

//MainActivity.java

link = (TextView) findViewById(R.id.textView);
link.setText("You may visit here : http://www.google.com");
link.setMovementMethod(LinkMovementMethod.getInstance());

//表现

<activity
            android:name="com.xpointers.xpmediaapp.mediaapp.WebViewActivity"
            android:label="@string/app_name">
            <intent-filter>

                <category android:name="android.intent.category.DEFAULT" />
                <action android:name="android.intent.action.VIEW" />

            </intent-filter>
        </activity>

我尝试使用此链接: 处理textview链接点击我的Android应用程序但无法理解我应该在WebviewActivity中写什么?

需要解决以下问题:

链接TextView找到一种方法来收听TextView中链接的单击获取单击链接的URL并将其加载到WebView中可选:使TextView可单击而不会失去选择文本的能力可选:处理格式化文本TextView(不同的文字大小和样式)

1链接TextView

String text = "These are some sample links:\nwww.google.com\nwww.facebook.com\nwww.yahoo.com";
Spannable spannable = new SpannableString( Html.fromHtml(text) );
Linkify.addLinks(spannable, Linkify.WEB_URLS);

2 +#3收听链接上的点击并在WebView中打开它们

URLSpan[] spans = spannable.getSpans(0, spannable.length(), URLSpan.class);
for (URLSpan urlSpan : spans) {
    LinkSpan linkSpan = new LinkSpan(urlSpan.getURL());
    int spanStart = spannable.getSpanStart(urlSpan);
    int spanEnd = spannable.getSpanEnd(urlSpan);
    spannable.setSpan(linkSpan, spanStart, spanEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    spannable.removeSpan(urlSpan);
}

在新活动中开放:

 private class LinkSpan extends URLSpan {
        private LinkSpan(String url) {
            super(url);
        }

        @Override
        public void onClick(View view) {
            String url = getURL();
            if (url != null) {


                startActivity(new Intent(LinkTestActivity.this,WebViewActivity.class).putExtra("url",url));

            }
        }
    }

并在网页浏览中记录网址。

更多见下面的链接: -

在WebView中打开URL而不是默认浏览器

截至您发布的链接,您应该在Manifest文件中声明您的某些活动可以打开链接。 单击此类链接后,您的活动将被打开,因此您应将启动模式设置为singleTop。 然后,您可以收到新的意图并在Webview中显示它们。 onNewIntent: http//developer.android.com/reference/android/app/Activity.html#onNewIntent( android.content.Intent

此示例是关于实现搜索,因此您可以跳到“singleTop”部分: http//developer.android.com/guide/topics/search/search-dialog.html

将此代码link.setText(--url--);

((TextView) findViewById(R.id.textView)).setOnClickListener(
    new OnClickListener() {
        @Override
        public void onClick(View v) {
            String url = ((TextView) findViewById(R.id.account_title))
                .getText().toString();
            WebView webView = (WebView) findViewById(R.id.wv);
            webView.getSettings().setJavaScriptEnabled(true);
            webView.loadUrl(url);
        }
    }
);

在相关的xml文件中创建一个webview,如下所示:

<WebView android:id="@+id/wv"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />

就是这样......如果你还有问题,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM