1

2つの異なるアクティビティを開くために2つのタブを備えたタブウィジェットを作成しようとしていますが、これを実現するために次のレイアウトを記述していますが、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を使用してタブクラスを拡張する場合は、

「@android:id/tabhost」のようなタブ関連のコントロールのIDを使用するには

私は「@+id / tabhost」を使用していましたが、これは間違っていますが、Activityクラスを介して拡張する場合は問題ありません。

レイアウトで直面していた上記の問題は発生しません...

タブチュートリアルも少しバグがあり、次の例を使用して解決できます。

于 2010-02-18T07:33:23.967 に答える