我正在Web Data
,我正在textView
上设置它。Ih 网络数据,有网址。我想点击给定的url
,它应该在Application
、WebView
内打开。但它的推出new browser
.请指导我。我所做的就在这里,
private void setTextViewHTML(TextView type_1_bodyTxt, String main_hrml) {
CharSequence sequence = Html.fromHtml(main_hrml);
SpannableStringBuilder strBuilder = new SpannableStringBuilder(sequence);
URLSpan[] urls = strBuilder.getSpans(0, sequence.length(), URLSpan.class);
for (URLSpan span : urls) {
makeLinkClickable(strBuilder, span);
}
if (main_hrml.contains("<p>")){
if (!main_hrml.contains("<ul")) {
GetDeviceResolution getDeviceResolution = new GetDeviceResolution((Demo) context);
type_1_bodyTxt.setPadding(0, 0, 0, -(int) (getDeviceResolution.setHeight(0.06)));
}else{
GetDeviceResolution getDeviceResolution = new GetDeviceResolution((Demo) context);
type_1_bodyTxt.setPadding(0, 0, 0, -(int) (getDeviceResolution.setHeight(0.02)));
}
}
type_1_bodyTxt.setText(strBuilder);
type_1_bodyTxt.setLinkTextColor(Color.RED);
removeLine(type_1_bodyTxt, main_hrml);
type_1_bodyTxt.setMovementMethod(LinkMovementMethod.getInstance());
}
private void removeLine(TextView type_1_bodyTxt, String content){
Spannable s = (Spannable) Html.fromHtml(content);
for (URLSpan u: s.getSpans(0, s.length(), URLSpan.class)) {
s.setSpan(new UnderlineSpan() {
public void updateDrawState(TextPaint tp) {
tp.setUnderlineText(false);
}
}, s.getSpanStart(u), s.getSpanEnd(u), 0);
}
type_1_bodyTxt.setText(s);
}
private void makeLinkClickable(SpannableStringBuilder strBuilder, final URLSpan span) {
int start = strBuilder.getSpanStart(span);
int end = strBuilder.getSpanEnd(span);
int flags = strBuilder.getSpanFlags(span);
ClickableSpan clickable = new ClickableSpan() {
public void onClick(View view) {
// Do something with span.getURL() to handle the link click...
Intent intent = new Intent(context, WebViewActivity.class);
intent.putExtra("url", span.getURL());
context.startActivity(intent);
}
};
strBuilder.setSpan(clickable, start, end, flags);
strBuilder.removeSpan(span);
}
**我传递带有意图的网址的网络活动是 **
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.astrolabe_web_link);
loadUrl = getIntent().getStringExtra("url");
WebView webview = (WebView) findViewById(R.id.webView);
ImageView webClose = (ImageView) findViewById(R.id.webClose);
loadUrl = getIntent().getStringExtra("url");
if (loadUrl == null) {
}
webview.getSettings().setAppCacheEnabled(true);
webview.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath());
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setDefaultTextEncodingName("utf-8");
webview.getSettings().setLoadsImagesAutomatically(true);
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url); // return false;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
webClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
webview.loadUrl(loadUrl);
}
}
当您单击具有链接的文本视图时,您必须打开具有 webview 的活动并加载您在文本视图上的 URL。
webView.loadURL(textViewValue);
webView.setWebViewClient(new WebViewClient());
WebView客户端将在应用程序Web视图本身中打开URL,不会打开任何外部浏览器