我有两个标签这个应用程序。当我访问布局时,第一个选项卡成功打开,加载在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布局中的错误因为它在第一个选项卡中运行良好。这可能是什么原因?
答案 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
。