Ich bekomme Web Data
und ich setze es auf textView
. Ih Web-Daten, gibt es URL. Ich möchte klicken Sie auf gegeben url
und es sollte innerhalb Application
, WebView
offen sein. Aber seine Einführung . Bitte führen Sie mich. Was ich tat, ist hier,Wie URL in WebView von innen TextView Link öffnen?
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);
}
** Meine WebActivity wo ich URL mit Absicht bin vorbei ist **
@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);
}
}
zeigen die WebView Aktivität geöffnet werden. – Spartan