0

このコードの最後の行で奇妙なnullポインタ例外が発生しています:

tab.addTab(newSpec);

これはコードです:

private TabHost tab;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_friends);

    tab = (TabHost) findViewById(R.id.activity_friends_tab);


    addTab("Chat", ChatTab.class);
}
private void addTab(String title, Class<?> cls)
{       
    TabSpec newSpec = tab.newTabSpec(title);
    newSpec.setIndicator(title);
    Intent newIntent = new Intent(this, cls);
    newSpec.setContent(newIntent);
    tab.addTab(newSpec);
}

理由がわからない。

4

2 に答える 2

0

まず第一に:プロジェクトをクリーンアップします。

次に、問題が解決しない場合は、activity_friends.xmlを確認し、TabHost名に対して、間違った参照を使用した可能性があります。

次に、間違った参照を使用しなかった場合は、LogCat例外全体をここに貼り付けます。

そして、何も機能しない場合は、TabActivityのアクティビティを変更し、タブの参照を@ android:id/tabhostに変更します。次に、this.getTabHost();を呼び出すだけでTabHostを参照できます。

于 2012-06-18T15:49:08.663 に答える
0

エラーが見つかりました:ローカルアクティビティマネージャーを追加してtab.setupを実行する必要があります:

        LocalActivityManager mLocalActivityManager = new LocalActivityManager(
            this, false);
    mLocalActivityManager.dispatchCreate(savedInstanceState);
    tab.setup(mLocalActivityManager);
于 2012-06-18T16:00:33.737 に答える