android tabhost空指针

时间:2012-06-18 15:44:54

标签: android android-tabhost

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

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);
}

无法理解为什么..

2 个答案:

答案 0 :(得分:0)

首先:清理你的项目。

然后,如果问题仍然存在,请查看activity_friends.xml和TabHost名称,您可能使用了错误的引用。

然后,如果您没有使用错误的引用,请在此处粘贴整个LogCat异常。

然后,如果没有任何效果,只需更改TabActivity的活动并将选项卡的引用更改为@android:id / tabhost。然后你可以通过调用this.getTabHost();

来引用你的TabHost

答案 1 :(得分:0)

发现我的错误: 我应该添加本地活动管理器并运行tab.setup:

        LocalActivityManager mLocalActivityManager = new LocalActivityManager(
            this, false);
    mLocalActivityManager.dispatchCreate(savedInstanceState);
    tab.setup(mLocalActivityManager);
相关问题