2013-04-10 96 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

相关问题