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

Android 单击textview中的链接后,如何在webview中而不是默认浏览器中打开该链接?,android,android-activity,textview,android-webview,Android,Android Activity,Textview,Android Webview,我有一个文本视图。因为我有这样的文字“你可以访问这个:”。单击此链接后,应在webview而不是默认浏览器中打开它。我的代码是: //MainActivity.java link = (TextView) findViewById(R.id.textView); link.setText("You may visit here : http://www.google.com"); link.setMovementMethod(LinkMovementMethod.getInstance());

我有一个文本视图。因为我有这样的文字“你可以访问这个:”。单击此链接后,应在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>

但未能理解WebviewActivity以及我应该在WebviewActivity中编写什么?

对于您发布的链接,您应该在清单文件中声明您的特定活动可以打开链接。单击此类链接时,您的活动将打开,因此您应该将启动模式设置为singleTop。然后您可以接收新的意图并在webview中显示它们。 onNewIntent:

本例是关于实现搜索的,因此您可以跳到“singleTop”部分:

将此代码放在
link.setText(-url--)之后

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

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

就这样。。。
如果您仍然遇到一些问题,请告诉我。

以下问题需要解决:

链接文本视图 在TextView中找到一种收听链接点击的方式 获取单击链接的url并将其加载到WebView中 可选:使文本视图可单击而不丧失选择文本的功能 可选:在文本视图中处理格式化文本(不同的文本大小和样式)

1链接文本视图 2+#3收听链接上的点击并在WebView中打开它们 在新活动中打开:

 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

有关更多信息,请参阅以下链接:-


@Golu我知道了,但是是否也需要使用click listener来查看文本?请参阅Emanuel Moecklinanswer@Golu字体它对我有用。谢谢:)bro我想在新活动中打开它。@Ak10147没问题,您可以对新活动使用相同的脚本,只需创建一个新的JAVA类并将JAVA代码放入onCreate()方法中,然后创建一个新的.XML文件,并将上面的XML代码放在父布局中。当我尝试使用上面的字符串(如textview.settext(text))设置文本时;它向我显示纯文本,甚至没有点击它的规定。我还需要设置文本吗?@King,使用
setText(Html.fromHtml(s))
,其中s应该包含一个文本,如“see here:a href=“>”。@Duggu onClick从不被调用。当我单击链接时,它会在默认浏览器中打开。要使此解决方案起作用,我们需要禁用自动链接(android:autoLink view标签不应设置为“web”)还可以通过编程在textview上设置移动方法:textview.setMovementMethod(LinkMovementMethod.getInstance());
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);
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));

            }
        }
    }