2011-07-09 67 views
7

鏈接我有這樣的一段代碼:打開一個網頁視圖,而不是默認的瀏覽器

TextView noteView = (TextView) view.findViewById(R.id.content); 
    noteView.setMovementMethod(LinkMovementMethod.getInstance()); 
    noteView.setText(Html.fromHtml(noteView.getText().toString())); 

我需要在網頁視圖中打開鏈接,而不是瀏覽器...這可能嗎?我能怎麼做??

在此先感謝..

回答

5

是的,你可以做到這一點,這是很簡單的任務與WebView中,你需要聲明一個WebViewClient對象和覆蓋public boolean shouldOverrideUrlLoading (WebView view, String url)方法,您可以過濾網址或給予一定的定製功能。

在你的情況下,要留在WebView上,你需要在該方法上返回false。

結賬this tutorial

問候

編輯:

看來你的問題是如何處理上的TextView的網址點擊事件。正如it's suggested on this question,你可以過濾包含Activity的WebView中的ACTION_VIEW意圖。如果您需要more guidance about intent-filters, check this out

+0

謝謝,但是,這不起作用...我在開始時沒有WebView ...當我點擊一個鏈接時,我將顯示網絡視圖而不是瀏覽器^^是嗎?不可能性? – Erenwoid

+0

@Erenwoid,現在我得到你的問題,你想在TextView url的點擊時處理Intent。那麼看看我編輯的答案。 – mdelolmo

+0

那岩石^^謝謝! – Erenwoid

7

另外,你可以這樣做。

package com.TextHtml; 

    import android.app.Activity; 
    import android.content.Context; 
    import android.os.Bundle; 
    import android.text.Html; 
    import android.text.Spannable; 
    import android.text.SpannableStringBuilder; 
    import android.text.method.LinkMovementMethod; 
    import android.text.style.ClickableSpan; 
    import android.text.style.URLSpan; 
    import android.view.View; 
    import android.widget.TextView; 
    import android.widget.Toast; 
    public class TextHtml extends Activity { 

     private TextView tv; 
     static Context ctx=null; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      ctx=this; 
      tv = (TextView) findViewById(R.id.tv); 
      String htmlLinkText = "<a href="/" mce_href="/""http://www.google.com/"><u>hello google </u></a>";  
      tv.setText(Html.fromHtml(htmlLinkText)); 
      tv.setMovementMethod(LinkMovementMethod.getInstance());  
      CharSequence text = tv.getText();  
      if(text instanceof Spannable){  
       int end = text.length();  
       Spannable sp = (Spannable)tv.getText();  
       URLSpan[] urls=sp.getSpans(0, end, URLSpan.class);  
       SpannableStringBuilder style=new SpannableStringBuilder(text);  
       style.clearSpans();//should clear old spans  
       for(URLSpan url : urls){  
        CustomerTextClick click = new CustomerTextClick(url.getURL());  
        style.setSpan(click,sp.getSpanStart(url),sp.getSpanEnd(url),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
       }  
       tv.setText(style);  
      } 
     } 

     private static class CustomerTextClick extends ClickableSpan{  

      private String mUrl;  
      MyURLSpan(String url) {  
       mUrl =url;  
      }  
      @Override 
      public void onClick(View widget) { 
       // TODO Auto-generated method stub 
       Toast.makeText(ctx, "hello google!",Toast.LENGTH_LONG).show(); 
      }  
     } 
    } 
+0

如果您不想將意圖過濾器添加到Web視圖活動,最佳答案。 –

+0

有史以來最佳答案! – Michalsx

相關問題