在Android的另一个元素中可以使用TabHost吗?
问题描述:
我试图设置一个标签主机作为布局的一个元素。我所看到的所有例子都在视图中显示了TabHost本身。这些例子工作正常,但当试图使它成为另一个布局的一部分时,它似乎不起作用。我还没有找到任何指定这种或那种方式的文件。在Android的另一个元素中可以使用TabHost吗?
像这样的作品(不适用于说明目的所示的所有代码):
<TabHost>
<LinearLayout>
<TabWidget/>
<FrameLayout>
<TextView
android:text="this is a tab" />
<TextView
android:text="this is another tab" />
<TextView
android:text="this is a third tab" />
</FrameLayout>
</LinearLayout>
</TabHost>
但是这不起作用:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
我做得不对,或者这是不可能的?
这是我的onCreate方法:
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
有什么需要设置吗?
当我说它不起作用时,我的意思是在模拟器上运行应用程序后,出现一个弹出窗口:“应用程序xxx(process com.example)意外停止,请重试。
如果我删除标签代码,它再次工作。我正在开发Android 1.6,如果这有所作为。
答
它的工作!
感谢你们说这是应该工作我一直在寻找问题比较,我有TabHost自己工作的例子。
问题出在我的onCreate()方法。我需要获取标签主机并在其中添加标签,我(出于某种原因)认为它仅仅在xml中就足够了。
我的onCreate最终看上去是这样的:(某人犯同样愚蠢的错误我)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TabHost mTabHost = getTabHost();
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("Tab 1").setContent(R.id.textview1));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Tab 2").setContent(R.id.textview2));
mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("Tab 3").setContent(R.id.textview3));
mTabHost.setCurrentTab(0);
}
向我们展示你的onCreate()。这工作正常 – Falmarri 2010-10-21 20:50:49
同意,它绝对有作为一个其他元素的孩子TabHost。你没有解释它是如何“不起作用”的。 – CommonsWare 2010-10-21 22:57:34