2013-04-10 127 views
0

我有兩個選項卡此應用程序。當我訪問佈局時,第一個選項卡會成功打開,並在網頁視圖中加載網頁,作爲選項卡的內容。但是,當我嘗試訪問第二個選項卡時,它不會將web視圖顯示爲內容;因此它指向瀏覽器打開網頁。我對兩個類都有相同的代碼,這些代碼可以在我的主要活動中通過我的意圖進行訪問。下面是我有:1日選項卡的WebView打開URL成功,但第二個選項卡中打開鏈接的瀏覽器

TabbedActivity.java

import android.app.TabActivity; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.TabHost; 

public class TabbedActivity extends TabActivity{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    TabHost host=getTabHost(); 

    host.addTab(host.newTabSpec("g") 
    .setIndicator("Google") 
    .setContent(new Intent(this, WebActivity2.class))); 
    host.addTab(host.newTabSpec("y") 
    .setIndicator("Yahoo") 
    .setContent(new Intent(this, WebActivity3.class))); 
    } 
} 

這裏是我作爲意圖兩類:

WebActivity2.java

import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 

    @SuppressLint("SetJavaScriptEnabled") 
    public class WebActivity2 extends Activity { 
     WebView browser; 

     @Override 
     public void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 

      WebView browser = new WebView(this); 
      setContentView(browser); 
      browser.loadUrl("http://www.google.com"); 
     } 
    } 

WebActivity3.java

import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 

    @SuppressLint("SetJavaScriptEnabled")    
    public class WebActivity3 extends Activity {  
     WebView browser; 

     @Override 
     public void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 

      WebView browser = new WebView(this); 
      setContentView(browser); 
      browser.loadUrl("https://m.facebook.com/ama.manilacampus"); 
     } 
    } 

我不認爲在我的XML佈局中的錯誤,因爲它在第一個標籤中效果很好。這可能是什麼原因?

回答

1

在加載Facebook的鏈接時,網頁流量重定向。由於重定向,默認情況下,您的webview將啓動瀏覽器活動。

browser.setWebViewClient(new WebViewClient() { 
    //to avoid browser prompting for actions when clicking on URLs 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
}); 
:您可以通過具有下面的代碼改變這種行爲
0

我認爲這很可能是您的網頁重定向。請參閱此相關問題以阻止WebView打開瀏覽器應用程序。您需要實施WebViewClient,並返回true,其中shouldOverrideUrlLoading

相關問題