2017-01-06 5 views
0

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); 
} 

}

+0

zeigen die WebView Aktivität geöffnet werden. – Spartan

Antwort

0

Wenn Sie auf Textview mit Link müssen Sie eröffnen Aktivität mit Webview und Laden der URL, die Sie in Textview haben.

webView.loadURL(textViewValue); 
webView.setWebViewClient(new WebViewClient()); 

WebViewClient wird die URL in Ihren Anwendungen webview öffnen sich, keine externe Browser wird auch

+0

NICHT wie thas bro .. Eigentlich ist hier in textView unterstreichen .. Jetzt wenn ich es anklicke öffnet es meine webView und alles ist perfekt, aber wenn ich meine Unterstreichung dann diese aufrufende Browser entfernen .. klicken Ereignis wird nicht ausgelöst .. –

+0

Fügen Sie onClickListener() auf Ihrem textview dann, wenn Sie nicht unterstreichen möchten – Mrinmoy

+0

Nicht funktioniert .. seine immer öffnenden Browser –

Verwandte Themen