2011-05-27 69 views
0

我正在寻找在我的Android应用程序(对于OAuth权限的东西)中有一个WebView弹出窗口,但我遇到了一些问题。继Android的在线指南,我将做到以下几点:在TabActivity中启动WebView

WebView webView = new WebView(this); 
setContentView(webView); 
webView.loadUrl(URL_HERE); 

我的问题是,这是,该活动实际上是一个TabActivity。当我尝试启动我的应用程序时,我收到了一个java.lang.RuntimeException,表示我的“内容必须有一个TabHost,其ID是arrtibute ...”。我如何能够在我的应用程序开始时启动WebView而不会遇到这个问题?

谢谢!

回答

0

您需要创建单独的活动以放置在选项卡内。然后,您可以将WebView添加到其中的一个。您的TabActivity必须包含<TabHost xmlns:android="http://schemas.android.com/apk/res/android"

TabHost要求TabWidget和FrameLayout都居住在其中。要垂直放置TabWidget和FrameLayout,使用LinearLayout。 FrameLayout是每个选项卡的内容所在的位置,现在为空,因为TabHost会自动嵌入其中的每个活动。

请注意,TabWidget和FrameLayout元素分别具有ID标签和tabcontent。必须使用这些名称,以便TabHost可以检索对它们中的每一个的引用。它期待这些名字。

您可以按照Tab Layout tutorial为例。

如果,另一方面,你想有一个弹出,而不是一个选项卡,选中Creating a Custom Dialog

+0

我有一个标签式布局回事了。我只需要WebView为用户提供权限来访问他们的数据。我是否应该为WebView创建一个Activity JUST,然后在需要使用它时从TabActivity调用该Activity的Intent? – Chiggins 2011-05-27 19:00:36

+0

在这种情况下,我会使用对话框(请参阅我发布的最后一个链接)。另外,你可以在你的第一个选项卡中添加一个webview,并在登录后将其可见性设置为GONE(我认为对话框是一个更好的选择) – Aleadam 2011-05-27 19:13:40

+0

对话框中的WebView?我从来没有听说过/看过,我不这么认为。 – Chiggins 2011-05-27 19:20:20