我有一个文字视图。我有这样的文字"你可以访问: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>
我尝试使用此链接:handle textview link click in my android app但未能理解我应该在WebviewActivity中写什么?
答案 0 :(得分:9)
需要解决以下问题:
链接TextView 找到一种方法来收听TextView中链接的单击 获取所单击链接的URL并将其加载到WebView中 可选:使TextView可单击而不会失去选择文本的能力 可选:处理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);
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));
}
}
}
并在网页浏览中记录网址。
有关详情,请参阅以下链接: -
答案 1 :(得分:1)
截至您发布的链接,您应该在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
答案 2 :(得分:0)
将此代码放在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" />
那是...... 如果您仍然遇到问题,请告诉我。