1

我正在尝试创建一个带有两个选项卡的选项卡小部件来打开两个不同的活动并编写以下布局来实现这一点,但它给了我一个NullPointerException.

我的错误在哪里?

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"> 
        <TabWidget 
            android:id="@android:id/tabs" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" /> 
        <FrameLayout 
            android:id="@android:id/tabcontent" 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"> 
        </FrameLayout> 
    </LinearLayout> 
</TabHost>

在扩展的 Java 类中,TabWidget我在方法中有以下代码onCreate

setContentView(R.layout.more);

TabHost mTabHost = (TabHost) this.findViewById(R.id.tabhost);
mTabHost.setup();

Intent intent;

intent = new Intent().setClass(this, Settings.class);
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator(
                        "Calculator", 
                        getResources().getDrawable(R.drawable.tab01)).setContent(intent));

intent = new Intent().setClass(this, Post.class);                
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator(
                        "YouTube", 
                        getResources().getDrawable(R.drawable.tab02)).setContent(intent));
4

1 回答 1

-1

如果您使用 TabActivity 扩展您的选项卡类,那么它是必须的

使用选项卡相关控件的 ID,例如“@android:id/tabhost”

我使用的是“@+id/tabhost”,这是错误的,但如果通过 Activity 类扩展它就可以了。

而我在布局上面临的上述问题不会出现......

选项卡教程也有点错误,可以使用以下示例解决。 例子

于 2010-02-18T07:33:23.967 回答