好的,所以我正在尝试创建一个小应用程序,在3个不同的选项卡中打开3个不同的Web视图。目前我已经创建了我的tabhost,并为我的webview创建了一个单独的类,但是当我打开应用程序时它没有显示。
Tabhost代码
public class HelloTabWidgetActivity extends TabActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, HelloWebViewActivity.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("albums").setIndicator("News",
res.getDrawable(R.drawable.ic_tab_albums))
.setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
intent = new Intent().setClass(this, SongsActivity.class);
spec = tabHost.newTabSpec("songs").setIndicator("SaintsTV",
res.getDrawable(R.drawable.ic_tab_songs))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, ArtistsActivity.class);
spec = tabHost.newTabSpec("artists").setIndicator("Fixtures",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
}
}
webview代码
public class HelloWebViewActivity extends Activity {
WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.google.com");
mWebView.setWebViewClient(new HelloWebViewClient());
}
}
我看不到问题,我已经阅读了有关TabHostContentFactory的其他人的帖子,但我不知道如何在应用程序打开时加载webview。任何帮助都会受到极大的欢迎。
上面的代码基于HelloWebView教程和HelloTabWidget教程
答案 0 :(得分:2)
我曾经尝试过同样的事情,后来发现我没有为应用宣布适当的互联网访问权限。这就是原因,tabhost中的webview变得空白,Logcat中也没有错误。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
将以上行添加到AndroidManifest.xml已解决了我的问题。
答案 1 :(得分:0)
我认为问题本身就在主要布局中,因为我只使用了唯一的修改来运行你的代码:
public class HelloWebViewActivity extends Activity {
WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView = new WebView(this);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.google.com");
mWebView.setWebViewClient(new HelloWebViewClient());
setContentView(mWebView);
}
}
这是为了让你开始,
我建议仅将Tabhost布局文件用于选项卡,并且webview控制器(和其他意图布局)应该位于其他布局文件中。为此,您可以使用教程:http://joshclemm.com/blog/?p = 136
我希望这会有所帮助