第一个选项卡在webview中成功打开URL,但第二个选项卡在浏览器中打开URL

时间:2013-04-10 03:39:43

标签: android

我有两个标签这个应用程序。当我访问布局时,第一个选项卡成功打开,加载在webview上的网页作为选项卡的内容。但是当我尝试访问第二个选项卡时,它不会将webview显示为内容;因此它指向浏览器以打开网页。我对两个类都有相同的代码,这些代码可以通过我在主活动中的意图访问。这就是我所拥有的:

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

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

我不认为我的xml布局中的错误因为它在第一个选项卡中运行良好。这可能是什么原因?

2 个答案:

答案 0 :(得分:1)

加载facebook链接时,会重定向webview。由于重定向,默认情况下您的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;
    }
});

答案 1 :(得分:0)

我认为您的网页可能会重定向。请参阅此相关问题,以阻止WebView打开浏览器应用。您需要在WebViewClient中实施true并返回shouldOverrideUrlLoading