0

我在这段代码的最后一行得到了一个奇怪的空指针异常:

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 回答